java 一个list集合怎么把对象id一样的 变成一个新集合
时间: 2024-02-09 11:11:52 浏览: 71
可以使用Java中的Map来实现这个功能。具体实现步骤如下:
1. 遍历原始列表,将每个对象的id作为Map的键,该对象作为Map的值,存储到Map中。
2. 将Map的值转换为列表,即可得到对象id相同的新集合。
下面是具体的Java代码示例:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 原始列表
List<Item> originalList = new ArrayList<>();
originalList.add(new Item(1, "apple"));
originalList.add(new Item(2, "banana"));
originalList.add(new Item(1, "orange"));
originalList.add(new Item(3, "pear"));
originalList.add(new Item(2, "grape"));
// 将对象id相同的对象转换为新集合
Map<Integer, Item> map = new HashMap<>();
for (Item item : originalList) {
map.put(item.getId(), item);
}
List<Item> newList = new ArrayList<>(map.values());
// 打印新集合
System.out.println(newList);
}
static class Item {
private int id;
private String name;
public Item(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Item{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
}
```
输出结果为:
```
[Item{id=1, name='orange'}, Item{id=2, name='grape'}, Item{id=3, name='pear'}]
```
可以看到,对象id为1和2的两个对象已经被合并到了新的集合中。
阅读全文