我有以下用例:
User Object is as followed:
UserId payload
123 abc1
123 abc2
456 pqr1
456 pqr2
678 xyz1
And after iterating above list<User Object>, Result should be like:
{123=[abc1, abc2], 456=[pqr1,pqr2], 678=[xyz1]}
以便我可以将value(其他对象的列表)用于key(123)进行进一步处理。 最好的方法是什么?
我在下面尝试过,但是不确定如果对象大小增加,性能如何提高。
Map<String,List<String>> userMap = new HashMap<String, List<String>>();
for(User user: users) {
String userId = user.getUserId();
List<String> payloads = new ArrayList<String>();
if(userMap.containsKey(userId)) {
payload = userMap.get(userId);
payloads.add(user.getPayload());
userMap.put(userId, payloads);
}
else {
payloads.add(user.getPayload());
userMap.put(user.getUserId(), payloads);
}
}
答案 0 :(得分:4)
最简单的方法是const jsondata = lessonviewdata.toJSON()
console.log(jsondata.viewed)
并使用Collectors#groupingBy
和Collectors#mapping
:
centerTitle: true
输出:
build(BuildContext context)
答案 1 :(得分:0)
另一种可能的解决方案是使用Guavas internal