我有一个像
public class User {
private String id;
private List<String> brands_ids;
}
我有一个用户对象列表,比如:示例数据
[
{
"id": 1,
"brands_ids": [
10,
20,
30
]
},
{
"id": 2,
"brands_ids": [
10,
50
]
},
{
"id": 3,
"brands_ids": [
10,
80
]
}
]
我的问题是,如何将此列表分组以了解品牌id出现在哪些对象中,例如品牌id=10出现在所有三个对象中,品牌id=30仅出现在一个对象中
带有 key=brand id 和 value = count 的地图的结果将解决我的问题,如下所示:{10:3},{20:1},{30,1},{50,1},{80,1 }
看看这里和这里
此代码片段创建3个用户,如您的示例中所示。
var users = Arrays.asList(
new User("1", Arrays.asList("10", "20", "30")),
new User("2", Arrays.asList("10", "50")),
new User("3", Arrays.asList("10", "80")));
Map<String, Long> result = users
.stream()
.flatMap(user -> user.getBrand_ids().stream())
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(result);
// Result is: {80=1, 50=1, 30=1, 20=1, 10=3}
我需要使用特定对象的属性(
我有下面的课
问题内容: 比方说你有一个的对象。 如果它们都具有int GoalScored变量,则如何排序?你如何按GoalScored排序? 问题答案: 你可以使用Collections.sort自定义Comparator 。 比较部分也可以这样写: 或者,你可以制作。这定义了所有对象的自然顺序。使用a 更灵活,因为不同的实现可以按名称,年龄等进行排序。
问题内容: 我需要使用特定对象的属性(位置)对对象(学生)列表进行分组,代码如下所示, 请给我建议一个干净的方法。 问题答案: In Java 8:
我想按属性对对象列表进行分组,然后使用(Key,Value)对迭代结果。 我在Java8中找到了用一个属性对对象列表进行分组的方法,如下所示 但结果将只有条目集(在entrySet属性中有值)。键集和值集将具有空值。我想迭代如下内容
如何按照一个属性的字母顺序(不是名称,而是属性所包含的实际值)对一个对象列表进行排序?