A feladat leírását, melynek a megoldását közzéteszem innen töltheted le. Ez a megoldás listával dolgozik. Az adattároló osztályban sok feladatot előkészítek, és a végső megoldásban ezeket használom. Ahol csak lehet, foreach ciklust használok. Az utolsó feladatot egy eddig ritkán használt HashMap adatszerkezettel oldottam meg, ínyenceknek ajánlott.
Adattároló osztály:
/** * * @author https://webotlet.hu */ package webotlet_07okt_foci_java_v3; public class Meccs { private int fordulo; private int hazaiVeg; private int vendegVeg; private int hazaiFel; private int vendegFel; private String hazai; private String vendeg; public Meccs( String[] tomb ) { fordulo = Integer.parseInt(tomb[0]); hazaiVeg = Integer.parseInt(tomb[1]); vendegVeg = Integer.parseInt(tomb[2]); hazaiFel = Integer.parseInt(tomb[3]); vendegFel = Integer.parseInt(tomb[4]); hazai = tomb[5]; vendeg = tomb[6]; } public int getFordulo() { return fordulo; } public int getHazaiVeg() { return hazaiVeg; } public int getVendegVeg() { return vendegVeg; } public int getHazaiFel() { return hazaiFel; } public int getVendegFel() { return vendegFel; } public String getHazai() { return hazai; } public String getVendeg() { return vendeg; } @Override public String toString() { return "Meccs{" + "fordulo=" + fordulo + ", hazaiVeg=" + hazaiVeg + ", vendegVeg=" + vendegVeg + ", hazaiFel=" + hazaiFel + ", vendegFel=" + vendegFel + ", hazai=" + hazai + ", vendeg=" + vendeg + '}'; } public String vegEredmeny() { return hazai + "-" + vendeg + ": " + hazaiVeg + "-" + vendegVeg + " (" + hazaiFel + "-" + vendegFel + ")"; } public String golEredmeny() { String eredmeny; if( hazaiVeg > vendegVeg ) { eredmeny = hazaiVeg + "-" + vendegVeg; } else { eredmeny = vendegVeg + "-" + hazaiVeg; } return eredmeny; } public String kiForditott() { String csapat = "-"; if( hazaiVeg > vendegVeg && hazaiFel < vendegFel ) { csapat = hazai; } else if( hazaiVeg < vendegVeg && hazaiFel > vendegFel ) { csapat = vendeg; } return csapat; } public boolean hazaiKikapott( String csapat ) { return hazai.equals(csapat) && hazaiVeg < vendegVeg; } }
A feladat megoldásai:
/** * * @author https://webotlet.hu */ package webotlet_07okt_foci_java_v3; import java.io.IOException; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Webotlet_07okt_foci_java_v3 { public static void main(String[] args) { // 1. feladat ArrayList<Meccs> meccsek = new ArrayList<>(); try { RandomAccessFile raf = new RandomAccessFile("meccs.txt", "r"); raf.readLine(); String sor; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { meccsek.add(new Meccs( sor.split(" "))); } raf.close(); } catch( IOException e ) { System.out.println("HIBA"); } // for( int i = 0; i < meccsek.length; i++ ) // { // System.out.println(meccsek[i].toString()); // } // 2. feladat System.out.println("2. feladat"); Scanner sc = new Scanner(System.in); System.out.println("Add meg a fordulo szamat!"); int fordulo = sc.nextInt(); for( Meccs meccs : meccsek) { if( meccs.getFordulo() == fordulo ) { System.out.println(meccs.vegEredmeny()); } } // 3. feladat System.out.println("3. feladat"); for( Meccs meccs : meccsek) { if( !meccs.kiFforditott().equals("-") ) { System.out.println(meccs.getFordulo() + " " + meccs.kiForditott()); } } // 4. feladat System.out.println("4. feladat"); sc = new Scanner(System.in); System.out.println("Add meg egy csapat nevet!"); String csapat = sc.nextLine(); // 5. feladat System.out.println("5. feladat"); int lott = 0; int kapott = 0; for( Meccs meccs : meccsek) { if( meccs.getHazai().equals(csapat) ) { lott += meccs.getHazaiVeg(); kapott += meccs.getVendegVeg(); } else if( meccs.getVendeg().equals(csapat) ) { lott += meccs.getVendegVeg(); kapott += meccs.getHazaiVeg(); } } System.out.println("lott: " + lott + " kapott: " + kapott); // 6. feladat System.out.println("6. feladat"); ArrayList<Meccs> kikapott = new ArrayList<>(); for( Meccs meccs : meccsek) { if( meccs.hazaiKikapott(csapat) ) { kikapott.add(meccs); } } if( kikapott.isEmpty() ) { System.out.println("A csapat otthon veretlen maradt."); } else { Meccs eloszor = meccsek.get(0); for( Meccs meccs : kikapott) { if( meccs.getFordulo() < eloszor.getFordulo() ) { eloszor = meccs; } } System.out.println(eloszor.getFordulo() + " " + eloszor.getVendeg()); } // 7. feladat HashMap<String,Integer> eredmenyek = new HashMap<>(); for( Meccs meccs : meccsek) { if( eredmenyek.containsKey(meccs.golEredmeny()) ) { eredmenyek.replace(meccs.golEredmeny(), eredmenyek.get(meccs.golEredmeny()) + 1); } else { eredmenyek.put(meccs.golEredmeny(), 1); } } try { RandomAccessFile ki = new RandomAccessFile("stat.txt", "rw"); ki.setLength(0); for( Map.Entry<String, Integer> elem : eredmenyek.entrySet()) { ki.writeBytes(elem.getKey() + ": " + elem.getValue() + " darab\n"); } ki.close(); } catch( IOException e ) { System.out.println("HIBA"); } } }
Ha hibát találsz benne, kérlek jelezd!