java 数组去重 stream
时间: 2023-10-13 17:10:47 浏览: 111
您好!关于您的问题,我可以提供以下代码实现Java数组去重,使用Stream:
```
int[] arr = {1, 2, 3, 2, 1, 4, 5, 4, 6};
int[] arrDistinct = Arrays.stream(arr).distinct().toArray();
System.out.println(Arrays.toString(arrDistinct));
```
这段代码将输出: [1, 2, 3, 4, 5, 6]
希望对您有帮助!如果您有其他问题,请随时提出。
相关问题
java 数组去重 api
Java 中提供了一个方便的 API 来去重数组:Arrays.stream().distinct().toArray()。
示例代码:
```
int[] arr = {1, 2, 2, 3, 4, 4, 5};
int[] distinctArr = Arrays.stream(arr).distinct().toArray();
```
这里使用了 Java 8 新增的 Stream API,将 int 数组转换成 IntStream 对象,然后使用 distinct() 方法去重,最后将结果转换回数组。这种方法简洁高效,适用于小规模的数组去重。但是对于大规模的数组,建议使用 Set 集合去重,因为 Set 内部使用了哈希表,查找和插入的时间复杂度都是 O(1),而数组去重需要遍历一次数组,时间复杂度是 O(n)。
java string数组去重
在Java中,字符串数组去重可以通过几种方法实现,以下是其中两种常见的方法:
1. **使用HashSet**:
```java
String[] array = {"element1", "element2", "element2", "element3"};
Set<String> uniqueSet = new HashSet<>(Arrays.asList(array));
String[] uniqueArray = uniqueSet.toArray(new String[uniqueSet.size()]);
```
这里首先将数组转换为List,然后使用HashSet去重,因为HashSet不允许有重复元素,最后再转换回数组。
2. **使用Java 8的Stream API**:
```java
String[] array = {"element1", "element2", "element2", "element3"};
String[] uniqueArray = Arrays.stream(array)
.distinct()
.toArray(String[]::new);
```
使用Java Stream的distinct()方法可以直接从数组中去除重复项,并转换为新的数组。
**相关问题--:**
1. 使用HashSet去重的原理是什么?
2. Stream API的distinct()方法是如何工作的?
3. 这两种方法在性能上有什么区别?
阅读全文