Hirdetés
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Garmin Instinct – küldetés teljesítve
- Xiaomi 14 - párátlanul jó lehetne
- Hivatalos a OnePlus 13 startdátuma
- Megtartotta Európában a 7500 mAh-t az Oppo
- Redmi Note 14 Pro+ 5G - a tizenhármas átka
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Huawei Watch Fit 3 - zöldalma
- Samsung Galaxy A54 - türelemjáték
Ú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?:))
- Garancia kérdés, fogyasztóvédelem
- Vezetékes FEJhallgatók
- eBay-es kütyük kis pénzért
- Assetto Corsa Rally
- Lexus, Toyota topik
- NFL és amerikai futball topik - Spoiler veszély!
- Elektromos autók - motorok
- Formula-1
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- BESZÁMÍTÁS! ASUS PRIME H510M i5 10400F 16GB DDR4 512GB SSD RX 6600 XT 8GB Chieftech BD-25B 600W
- Samsung Galaxy S22 8/128 GB Phantom White ÚJ, gariban cserélt! 6 Hónap Jótállás
- Xiaomi Redmi 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- OnePlus Pad Go Green nagy kijelző, könnyű hordozhatóság 8/128 GB Használt, karcmentes 3 hó
- HOWEAR HW ULTRA 3 Call okosóra
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


