Hirdetés
Új hozzászólás Aktív témák
-
Csaby25
őstag
Sziasztok!
A következő metódus csv file-ból olvas ki sorokat és objektummá alakítom (minden sor egy objektum):private static void readData(File inputFile, Class type) {try {BufferedReader reader = new BufferedReader(new FileReader(inputFile));String line;// Reading first line..while ((line = reader.readLine()) != null) {String[] values = line.split(COMMA_DELIMITER);if (type == Student.class) {Student student = populateStudent(values);if (students == null) {students = new HashMap<Integer, Student>();}students.put(student.getStudentId(), student);}if (type == Subject.class) {Mark mark = populateMark(values);Subject subject = populateSubject(values);if (subject.getMarks() == null) {subject.setMarks(new ArrayList<Mark>());}students.get(mark.getStudentId()).getSubjects().put(subject.getSubjectId(), subject);students.get(mark.getStudentId()).getSubjects().get(subject.getSubjectId()).getMarks().add(mark);}}reader.close();} catch (Exception e) {e.printStackTrace();}}Ez szeretném megoldani Stream-el:
private static void readData(Path inputFile, Class type) {Student student;Subject subject;Mark mark;try {Stream<String> lines = Files.lines(inputFile);List<List<String>> values = lines.map(line -> Arrays.asList(line.split(COMMA_DELIMITER))).collect(Collectors.toList());if (type == Student.class) {values.forEach(value -> student = populateStudent(value));if (students == null) {students = new HashMap<Integer, Student>();}students.put(student.getStudentId(), student);}if (type == Subject.class) {values.forEach(value -> mark = populateMark(value));if (subject.getMarks() == null) {subject.setMarks(new ArrayList<Mark>());}students.get(mark.getStudentId()).getSubjects().put(subject.getSubjectId(), subject);students.get(mark.getStudentId()).getSubjects().get(subject.getSubjectId()).getMarks().add(mark);}//}} catch (Exception e) {e.printStackTrace();}}A forEach-ben (
value -> student = populateStudent(value)) ezt a hibát kapom: ''Local variable student defined in an enclosing scope must be final or effectively final'Tudja valaki, hogy lehet ezt megoldani?
Köszi!
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- Bundle topik
- HTPC (házimozi PC) topik
- Házimozi haladó szinten
- Vezeték nélküli fülhallgatók
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Ford topik
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Kingston 2TB KC3000 NVMe SSD - Garanciális
- Kingston FURY 32GB (2x16GB KF560C36BBEK2-32) DDR5-6000 CL36 - Garanciális
- S. Mario PC! Hogy fusson a Super Mario! I5 14400F / RX 6900XT 16GB / 32GB DDR5 / 1TB SSD
- XFX Radeon 7900GRE 16GB - garanciális
- Truecam M5 GPS WiFi autós menetrögzítő kamera + CPL Polarizációs szűrő + 64Gb Endurance kártya
- AKCIÓ! Asrock Z270 i7 6700K 16GB DDR4 512GB SSD RTX 2060 6GB GameMax Storm 2 AB Adata 600W
- MacBook Air 15" (M3, 8 GB RAM, 512 GB SSD)
- iPhone 11 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS4305, 100% Akksi
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- KERESEK: Poly Voyager 4320 M UC USB-C 218478-02M Part number: 77Z30AA
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

