List中选出相同id的数据做成新的list
时间: 2024-04-11 12:26:03 浏览: 18
要从一个列表中选择具有相同ID的数据并创建一个新的列表,您可以按照以下步骤进行操作:
1. 创建一个新的空列表,用于存储具有相同ID的数据。
2. 遍历原始列表中的每个元素。
3. 检查当前元素的ID是否与已经存在于新列表中的某个元素的ID相同。
4. 如果是相同的ID,则将当前元素添加到新列表中。
5. 如果不是相同的ID,则将当前元素作为新的ID出现,并将其添加到新列表中。
6. 完成循环后,新列表将包含具有相同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<Data> originalList = new ArrayList<>();
originalList.add(new Data(1, "A"));
originalList.add(new Data(2, "B"));
originalList.add(new Data(1, "C"));
originalList.add(new Data(3, "D"));
originalList.add(new Data(2, "E"));
// 用于存储具有相同ID的数据的新列表
List<Data> newList = new ArrayList<>();
// 用于跟踪已经存在的ID
Map<Integer, Boolean> idMap = new HashMap<>();
// 遍历原始列表
for (Data data : originalList) {
int id = data.getId();
// 检查ID是否已经存在于新列表中
if (idMap.containsKey(id)) {
newList.add(data);
} else {
idMap.put(id, true);
}
}
// 打印新列表中的数据
for (Data data : newList) {
System.out.println(data);
}
}
// 数据类
static class Data {
private int id;
private String name;
public Data(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Data{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
}
```
这个示例代码将根据ID选择具有相同ID的数据,并将其添加到新的列表中。您可以根据自己的需要进行修改和适应。希望这能帮到您!如有任何疑问,请随时提问。