のString、MyObjectに>> myObject1とmyObject3が同じ一意のIDを持っているMap<String, List<MyObject>> to List<Map<String, MyObject>>
は、リスト<MyObject>は私が変換したい地図<javaの
{<key1,[myObject1, myObject2]>, <key2,[myObject3, myObject4]>} will be converted to [{<key1,myObject1>, <key2,myObject3>}, {<key1,myObject2>, <key2, myObject4>}]
とそう<リストに地図<文字列を変換しますmyObject2とmyObject4。
私の実装は以下ですが、これを行うためのより良い方法があります。
private List<Map<String, MyObject>> getObjectMapList(Map<String, List<MyObject>> objectMap)
{
List<Map<String, MyObject>> objectMapList = new ArrayList<Map<String,MyObject>>();
for(MyObject myObject : objectMap.get("key1")) {// there will be default key1 whose value is known
Map<String, MyObject> newMap= new HashMap<String, MyObject>();
for (String key : objectMap.keySet()) {
newMap.put(key, objectMap.get(key).stream()
.filter(thisObject -> thisObject.getId().equals(myObject.getId()))
.collect(Collectors.toList()).get(0));
}
objectMapList.add(newMap);
}
return objectMapList;
}
(それが動作する合理的な可能性がありますか)? – Jeff
はいくつかのタイプミスでした。編集しました – user3330263