我想将java集合中某个属性相同的对象形成一个新的集合,请给我实例代码
时间: 2023-06-03 07:05:47 浏览: 84
好的,以下是示例代码:
```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<TestObject> list = new ArrayList<>();
list.add(new TestObject("A", 1));
list.add(new TestObject("B", 2));
list.add(new TestObject("C", 1));
list.add(new TestObject("D", 3));
list.add(new TestObject("E", 2));
// 创建属性值和对象的映射关系
Map<Integer, List<TestObject>> map = new HashMap<>();
for (TestObject obj : list) {
if (!map.containsKey(obj.getId())) {
map.put(obj.getId(), new ArrayList<>());
}
map.get(obj.getId()).add(obj);
}
// 输出结果
for (Map.Entry<Integer, List<TestObject>> entry : map.entrySet()) {
System.out.println("Id: " + entry.getKey() + ", Objects: " + entry.getValue());
}
}
}
class TestObject {
private String name;
private int id;
public TestObject(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
@Override
public String toString() {
return name;
}
}
```
这个示例演示了如何将java集合中某个属性相同的对象形成一个新的集合。具体做法是使用一个HashMap,将属性值和对象的映射关系存储在map中,然后遍历map输出结果。