Search
/* * 06.12.2013 * Pole objektu, ulozeni/nacteni, razeni (Bubble Sort) */ package pri.pkg11; import java.io.*; public class PRI11 { public static void main(String[] args) { System.out.println("=== PRI - Pole objektu, soubory ==="); Osoba o1 = new Osoba("Jan", 8000); Osoba o2 = new Osoba("Eva", 35000); System.out.println(o1.getJmeno() + " " + o2.getJmeno()); System.out.println(o1.getPlat() + " " + o2.getPlat()); Osoba[] seznam = new Osoba[5]; seznam[0] = o1; seznam[1] = o2; seznam[2] = new Osoba("Hugo",23000); seznam[3] = new Osoba("Marie",28000); seznam[4] = new Osoba("Petr",17000); tiskSeznamu(seznam); Osoba[] seznamSetridenePlaty = setridPlat(seznam); tiskSeznamu(seznamSetridenePlaty); Osoba[] seznamSetridenaJmena = setridJmena(seznam); tiskSeznamu(seznamSetridenaJmena); ulozSeznam(seznam,"osoby1.xxx"); Osoba[] seznamZeSouboru = ctiSeznam("osoby1.xxx"); if(seznamZeSouboru == null){ System.out.println("=== Chyba cteni ze souboru ==="); }else{ System.out.println("=== Seznam ze souboru ==="); tiskSeznamu(seznamZeSouboru); } System.out.println("Pocet osob v seznamu = "+Osoba.getPocetOsob()); }//main()ENd static void tiskSeznamu(Osoba[] seznam){ System.out.println("=== Seznam osob ==="); for (int i = 0; i < seznam.length; i++) { if(seznam[i] != null){ System.out.println(seznam[i].getJmeno()+ ", "+seznam[i].getPlat()); } } System.out.println("==================="); } static Osoba[] setridPlat(Osoba[] seznam) { Osoba[] s = new Osoba[seznam.length]; System.arraycopy(seznam, 0, s, 0, seznam.length); Osoba r; for (int n = s.length - 1; n > 0; n--) { for (int i = 0; i < n; i++) { if (s[i].getPlat() > s[i + 1].getPlat()) { r = s[i + 1]; s[i + 1] = s[i]; s[i] = r; }// if() END }// for() END }// for() END return (s); }//setridPlat()END static Osoba[] setridJmena(Osoba[] seznam) { Osoba[] s = new Osoba[seznam.length]; System.arraycopy(seznam, 0, s, 0, seznam.length); Osoba r; for (int n = s.length - 1; n > 0; n--) { for (int i = 0; i < n; i++) { if (s[i].getJmeno().compareToIgnoreCase(s[i + 1].getJmeno()) > 0) { r = s[i + 1]; s[i + 1] = s[i]; s[i] = r; }// if() END }// for() END }// for() END return (s); }//setridJmena()END static void ulozSeznam(Osoba[] seznam, String jmenoSouboru) { //System.out.println("Zapis do souboru \""+jmenoSouboru+"\""); File f = new File(jmenoSouboru); // ==>Zalozeni a Otevreni souboru pro ZAPIS // Pokud jiz soubor existuje, jeho data se ztrati try { FileOutputStream fos = new FileOutputStream(f); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(seznam); oos.close(); } catch (Exception e) { System.out.println(e.getMessage()); } }//ulozSeznam()END static Osoba[] ctiSeznam(String jmenoSouboru) { //System.out.println("Cteni ze souboru \"" + jmenoSouboru + "\""); File g = new File(jmenoSouboru); // ==>Zalozeni a Otevreni souboru pro ZAPIS // Pokud jiz soubor existuje, jeho data se ztrati Osoba[] seznam = null; try { FileInputStream fis = new FileInputStream(g); ObjectInputStream ois = new ObjectInputStream(fis); seznam = (Osoba[])ois.readObject(); ois.close(); } catch (Exception e) { System.out.println(e.getMessage()); } return seznam; }//ctiSeznam()END }//PRI11 class ENd class Osoba implements Serializable{ private static int pocetOsob = 0; private String jmeno; private int plat; public Osoba(String jmeno, int plat){ pocetOsob++; this.jmeno = jmeno; this.plat = plat; } String getJmeno(){ return this.jmeno; } int getPlat(){ return this.plat; } void setTelefon(int plat){ this.plat = plat; } void setJmeno(String jmeno){ this.jmeno = jmeno; } static int getPocetOsob(){ return pocetOsob; } }