java 将list对象中的id全部提取出来
时间: 2023-08-05 13:03:34 浏览: 224
可以使用 Java8 的 Stream API 和 Lambda 表达式来实现:
```java
List<MyObject> list = ...; // 假设这是你的 List 对象
List<Integer> ids = list.stream().map(MyObject::getId).collect(Collectors.toList());
```
其中,`MyObject` 是你的数据对象,`getId()` 方法是获取对象 ID 的方法。`map()` 方法将每个对象映射为其 ID,`collect()` 方法将所有 ID 收集到一个新的列表中。最终的结果是一个包含所有 ID 的列表。
相关问题
java 提取list对象重复数据
同样可以使用两个嵌套的循环遍历列表并比较每个对象是否相同。如果相同,则将其添加到另一个列表中,最后返回这个列表。以下是示例代码:
假设我们有一个Person类,其中包含id和name属性:
```
public class Person {
private int id;
private String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
// Getters and setters omitted for brevity
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return id == person.id &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
}
```
然后我们有一个包含Person对象的列表:
```
List<Person> people = Arrays.asList(
new Person(1, "Alice"),
new Person(2, "Bob"),
new Person(3, "Charlie"),
new Person(1, "Alice"),
new Person(4, "David"),
new Person(3, "Charlie")
);
```
现在我们可以使用以下代码来提取重复的Person对象:
```
List<Person> duplicates = new ArrayList<>();
for (int i = 0; i < people.size(); i++) {
for (int j = i + 1; j < people.size(); j++) {
if (people.get(i).equals(people.get(j))) {
if (!duplicates.contains(people.get(i))) {
duplicates.add(people.get(i));
}
}
}
}
System.out.println("Duplicates: " + duplicates);
```
输出结果为:`Duplicates: [Person{id=1, name='Alice'}, Person{id=3, name='Charlie'}]`。
java stream 提取list对象重复数据
可以使用Java 8的Stream API来提取List中的重复对象。使用`distinct()`方法可以过滤掉List中重复的元素,而使用`filter()`方法可以过滤掉不重复的元素,最后使用`collect()`方法将结果收集到一个新的List中。以下是示例代码:
```
List<Person> duplicates = people.stream()
.filter(p -> Collections.frequency(people, p) > 1)
.distinct()
.collect(Collectors.toList());
System.out.println("Duplicates: " + duplicates);
```
这里的`Collections.frequency()`方法可以计算List中某个元素出现的次数,如果大于1则表示该元素重复。`distinct()`方法用于过滤掉List中的重复元素。最后我们使用`collect()`方法将结果收集到一个新的List中。
输出结果为:`Duplicates: [Person{id=1, name='Alice'}, Person{id=3, name='Charlie'}]`。
阅读全文