gpt4 book ai didi

java - 选择 X 类 ArrayList 的不同字段

转载 作者:行者123 更新时间:2023-12-02 09:59:48 25 4
gpt4 key购买 nike

我有一个 X 类的 ArrayList。

ArrayList<X> items = new ArrayList();

类X包含多个字段,全部为字符串类型。 (ID、描述、品牌...)

那么如果我想获得这个类的 ArrayList,它只包含给定字段的不同值,我该怎么办?

实践中:

如何获得包含所有品牌但不重复的 X 类 ArrayList? (获取 items 中的所有品牌,但两次都没有品牌)

或者是否有更好/更有效的方法来仅获取品牌列表?

\e: 我不使用 Java8。

希望这不会太令人困惑。

最佳答案

 items.stream()
.collect(Collectors.groupingBy(X::getBrand)) // group your items by brand
.values().stream() // stream map values
.map(e->e.get(0)) // for each brand get first element in brand list
.collect(Collectors.toList());

如果你不能使用java 8/streams

    Map<String,List<X>> map = new HashMap<>();
for(X item : items){
if(!map.containsKey(item.getBrand())){
map.put(item.getBrand(), new ArrayList<>());
}else{
map.get(item.getBrand()).add(item);
}
}
List<X> result = new ArrayList<>();
for(Map.Entry<String,List<X>> e : map.entrySet()){
result.add(e.getValue().get(0));
}

关于java - 选择 X 类 ArrayList 的不同字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55724554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com