Anónimo:
Tengo getSemiFileInfos()
en una lista y que quería utilizar la corriente de bucle y entonces cada uno de elemento interior. Cada elemento puede seguir utilizando getItem()
o getItem2()
. Primero voy a crear un mapa de item
y item2
en itemMap
, entonces voy a almacenar cada bucle de getSemiFileInfos()
como un mapa en la items
lista.
Lo que quiero es que sea en una sola línea. Me pregunto si todavía es posible.
private List<Map<String, String>> items;
items = new ArrayList<Map<String, String>>();
Map<String, String> itemMap = new HashMap<String, String>();
file.getFileInfo().getSemiFileInfos().stream().forEach(m->
itemMap.put("item", m.getItem());
itemMap.put("item2", m.getItem2().split(":",1))
);
items.add(mrphMap);
Eran :
Puede asignar cada elemento de su Stream
en una Map
con map()
y recoger en un List
:
List<Map<String, String>> items =
file.getFileInfo()
.getSemiFileInfos()
.stream()
.map(m-> {
Map<String, String> itemMap = new HashMap<String, String>();
itemMap.put("item", m.getItem());
itemMap.put("item2", m.getItem2().split(":",1)); // this doesn't produce a String
// value so perhaps you are
// missing some additional logic
// that would extract one
// String from the String[]
return itemMap;
})
.collect(Collectors.toList());