java使用stream流去重list
时间: 2023-07-25 22:20:24 浏览: 116
可以使用Java 8中的Stream API来去重List。具体可以按照以下步骤进行:
1. 将List转换成Stream对象
2. 调用Stream对象的distinct()方法,用于去重
3. 将去重后的Stream对象转换回List
示例代码如下:
```java
List<String> list = Arrays.asList("A", "B", "C", "A", "D", "B");
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
System.out.println(distinctList);
```
输出结果为:[A, B, C, D],其中重复的元素被去除了。
相关问题
java使用stream流去重
你可以使用Java的Stream流进行去重操作。在Stream流中,你可以使用`distinct()`方法来消除重复元素。以下是一个简单的示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 3, 4, 4, 5);
List<Integer> distinctNumbers = numbers.stream()
.distinct()
.collect(Collectors.toList());
System.out.println(distinctNumbers); // 输出: [1, 2, 3, 4, 5]
}
}
```
在这个例子中,我们创建了一个包含重复元素的整数列表`numbers`。然后,我们使用`stream()`方法将其转换为流,并调用`distinct()`方法来去除重复元素。最后,我们使用`collect(Collectors.toList())`方法将结果收集到一个新的列表`distinctNumbers`中,并打印输出结果。
希望这可以帮助到你!如果有任何进一步的问题,请随时提问。
java stream流去重对象List
在Java中,Stream API提供了一种优雅的方式来处理集合并去重。如果你有一个对象列表,每个对象包含一些属性用于唯一标识,你可以使用`distinct()`方法配合Lambda表达式来去除重复的对象。
假设你有一个`Person`类,其中有一个`getName()`方法返回唯一的名称:
```java
class Person {
private String name;
// getters and setters
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
Person person = (Person) obj;
return Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
// 使用Stream去重
List<Person> uniquePeople = people.stream()
.distinct() // 去除重复元素
.collect(Collectors.toList());
```
在这个例子中,`equals()`和`hashCode()`方法用于确定哪些对象被认为是相同的。`distinct()`会基于这两个方法来判断是否应该保留对象。
阅读全文