Csak akkor olvass tovább, ha az Objektumok válogatása feladatot megoldottad, vagy nem sikerült megoldani.
Az alap feladatot a fenti linken megtalálod.
/** * * @author http://webotlet.hu */ package webotlet_objektumokvalogatasa; import java.io.*; import java.util.ArrayList; import java.util.HashMap; import java.util.TreeMap; import java.util.Map; public class Webotlet_ObjektumokValogatasa { public static void main(String[] args) { RandomAccessFile raf; String sor; // a beolvasando novenyek adatai ArrayList<Noveny> novenyek = new ArrayList<>(); // a gyujtendo reszek alapjan szetvalogatott novenyek adatai TreeMap<String,ArrayList<Noveny>> reszek = new TreeMap<>(); try { // adatok beolvasasa es tarolasa raf = new RandomAccessFile("noveny.txt", "r"); for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { // a noveny objektumok tarolasa novenyek.add( new Noveny( sor.split(";") )); } // vegigmegyunk a novenyeken for( Noveny n : novenyek) { // ha nincs meg ilyen resz, amiert novenyt gyujtenek, akkor // letrehozunk egy ilyen kulcsot egy listaval, ahova majd // az oda tartozo novenyek kerulnek if( !reszek.containsKey( n.getMiert() ) ) { reszek.put( n.getMiert(), new ArrayList<Noveny>() ); } // hozzaadjuk a novenyt az adott listahoz reszek.get( n.getMiert() ).add(n); } // ide pakolom ossze a kiirando szoveget StringBuilder sb = new StringBuilder(); // vegigmegyek a Map elemein for( Map.Entry<String,ArrayList<Noveny>> elem : reszek.entrySet() ) { // eloszor a elem neve jon (a gyujtendo resz) sb.append(elem.getKey()+":\n"); // majd vegigmegyunk az adott reszhez tartozo novenyeken for( Noveny n : elem.getValue() ) { // osszepakoljuk a novenyek konkret adatait (mindig pontosvesszo a vegen!) sb.append(" "+n.getNev()+", "+n.getKezd()+", "+n.getVeg()+";\n"); } // ha egy adott csoporttal vegeztunk, az utolso elem utani pontosvesszot // toroljuk, ami mindig a StringBuilder utolso elotti karaktere sb.deleteCharAt( sb.length()-2 ); } System.out.println( sb ); } catch( IOException e ) { System.err.println( "HIBA" ); } } }