Ich habe zwei einfache Klasse ImageEntity und AbbildungslisteJava 8 Stream api wie Liste zu sammeln, um Objekt
wie Ergebnisliste ImageEntity sammeln, um Abbildungsliste?
List<File> files = listFiles();
ImageList imageList = files.stream().map(file -> {
return new ImageEntity(
file.getName(),
file.lastModified(),
rootWebPath + "/" + file.getName());
}).collect(toCollection(???));
Klasse
public class ImageEntity {
private String name;
private Long lastModified;
private String url;
...
}
und
public class ImageList {
private List<ImageEntity> list;
public ImageList() {
list = new ArrayList<>();
}
public ImageList(List<ImageEntity> list) {
this.list = list;
}
public boolean add(ImageEntity entity) {
return list.add(entity);
}
public void addAll(List<ImageEntity> list) {
list.addAll(entity);
}
}
Es ist keine elegante Lösung
ImageList imgList = files.stream().
.map(file -> { return new ImageEntity(file.getName(), file.lastModified(), rootWebPath + "/" + file.getName()) })
.collect(ImageList::new, (c, e) -> c.add(e), (c1, c2) -> c1.addAll(c2));
Es wurde eine Lösung durch collectingAndThen sein kann?
was sonst noch Ideen?
Gut:
Sie dann wie folgt verwenden können! sehr elegant! Vielen Dank! – Atum