java distinct 代码
时间: 2023-07-09 10:53:13 浏览: 116
在 Java 中,如果想要对集合中的元素进行去重,可以使用 Stream API 中的 distinct() 方法。
以下是使用 distinct() 方法对 List 进行去重的示例代码:
```java
import java.util.Arrays;
import java.util.List;
public class DistinctExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 3, 4, 4, 5);
List<Integer> distinctNumbers = numbers.stream().distinct().toList();
System.out.println(distinctNumbers); // 输出 [1, 2, 3, 4, 5]
}
}
```
在上面的代码中,我们首先定义了一个包含重复元素的 List,然后使用 Stream API 中的 distinct() 方法对其进行去重,并将结果保存到一个新的 List 中,最后输出去重后的 List。
需要注意的是,distinct() 方法会根据元素的 equals() 方法进行比较,因此如果要对自定义对象进行去重,需要重写该对象的 equals() 方法。
相关问题
java distinct
在Java中,可以使用`distinct()`方法来去除集合或流中的重复元素。该方法是Stream API的一部分,因此可以用于多种集合类型。
下面是一个示例代码,演示如何使用`distinct()`方法去除数组中的重复元素:
```java
import java.util.Arrays;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Integer[] numbers = {1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9};
// 使用distinct()方法去除重复元素
Integer[] distinctNumbers = Arrays.stream(numbers)
.distinct()
.toArray(Integer[]::new);
// 打印结果
System.out.println(Arrays.toString(distinctNumbers));
}
}
```
输出结果将是:[1, 2, 3, 4, 5, 6, 7, 8, 9]
请注意,`distinct()`方法依赖于对象的`equals()`和`hashCode()`方法来判断元素是否重复。因此,如果要在自定义对象中使用`distinct()`方法,需要确保正确实现了这两个方法。
Java distinct()详解
Java中的distinct()方法是用于过滤集合中的重复元素的方法。它返回一个新的集合,其中包含原始集合中不同的元素。
下面是一个示例代码,演示如何使用Java的distinct()方法:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 2, 3, 4, 5, 4, 6);
List<Integer> distinctNumbers = numbers.stream().distinct().collect(Collectors.toList());
System.out.println(distinctNumbers); // [1, 2, 3, 4, 5, 6]
```
在这个例子中,我们创建了一个整数列表,其中包含重复的元素。然后我们使用流操作来调用distinct()方法来获取不同的元素,并将它们收集到一个新的列表中。
需要注意的是,distinct()方法使用元素的equals()方法来判断它们是否相等。因此,如果我们想要使用自定义的相等性判断逻辑,我们可以使用Java 8中的另一个方法:distinct(Function<T,?> keyExtractor)。这个方法接受一个函数,该函数将元素转换为它们的关键字,然后使用这些关键字来判断元素是否相等。例如,我们可以使用以下代码来过滤出一个字符串列表中的唯一元素:
```java
List<String> strings = Arrays.asList("foo", "bar", "foo", "baz", "qux", "foo");
List<String> uniqueStrings = strings.stream().distinct(String::toLowerCase).collect(Collectors.toList());
System.out.println(uniqueStrings); // [foo, bar, baz, qux]
```
在这个例子中,我们使用String::toLowerCase方法将字符串转换为小写字母,并将转换后的字符串作为关键字来判断它们是否相等。因此,我们得到了一个只包含小写字母的唯一字符串列表。
阅读全文