- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- Argos: Szeretem az ecetfát
- Elektromos rásegítésű kerékpárok
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
Ú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
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Vigneau interaktív lokálblogja
- Horgász topik
- Milyen monitort vegyek?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Autós topik
- Delta Force (2024)
- exHWSW - Értünk mindenhez IS
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Házimozi belépő szinten
- További aktív témák...
- Iphone 14 PRO 128 GB 88% akksi
- Watch Ultra (1.st gen) szinte új
- Csere-Beszámítás! Lenovo Ideapad 3 Gamer notebook.I5 10300H / 16GB DDR4 / GTX 1650 / 250SSD +500HDD
- HP Victus 16-d10008tx 16.1" FHD IPS i7-12700 RTX 3060 16GB 512GB NVMe gar
- Lenovo Legion 5 Pro Gamer Laptop 2év garanciával (i7 13700HX, RTX 4060)
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Pro 24GB RAM 512GB SSD garanciával hibátlan működéssel
- Már csak 12 db 5G ROUTER! - Telenor 5G Indoor WiFi Router (FA7550) + töltő (bolti áruk 100.000Ft)
- Samsung Galaxy S6 Lite (2022) , 4/64 GB ,Wi-fi
- Bomba ár! Dell Latitude 5500 - i5-8GEN I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Garancia!
- Samsung Galaxy S22 Ultra , 8/128 GB , Kártyafüggetlen
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest