首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用集合框架删除重复值

使用集合框架删除重复值
EN

Stack Overflow用户
提问于 2019-08-06 15:16:24
回答 4查看 99关注 0票数 1

我试图通过将数组转换为arraylist,然后进一步将arraylist转换为Hashset来删除重复的值。正如我们所知,哈希集不包含任何重复值。但是我没有得到任何输出。我之所以实现这个技术,是因为我想避免使用for循环。

代码语言:javascript
复制
import java.util.*;

public class RemoveDupliucate {

public static void main(String[] args) {
    int a[]= {1,2,1,3,2,15,4,6,4};

    List l=Arrays.asList();

    TreeSet<Integer> m=new TreeSet(l);
    for(Integer i:m)
    {
        System.out.print(i);
    }



}

我没有得到任何输出。

EN

回答 4

Stack Overflow用户

发布于 2019-08-06 15:26:02

如果您想从数组中删除重复的元素,已经有一个使用java 8流的方法,

代码语言:javascript
复制
Arrays.stream('array').distinct().toArray();

它将删除所有重复的元素并返回数组。

对于您的代码,

代码语言:javascript
复制
int a[]= {1,2,1,3,2,15,4,6,4};

a = Arrays.stream(a).distinct().toArray();

如果您想要删除重复项,这应该是可行的。

票数 2
EN

Stack Overflow用户

发布于 2019-08-06 16:08:07

这一行将创建一个空列表,这就是没有输出的原因:

List l = Arrays.asList();

它应该是这样的

List<Integer> l = Arrays.asList(1,2,1,3,2,15,4,6,4);

票数 1
EN

Stack Overflow用户

发布于 2019-08-06 15:26:59

您可以简单地执行以下操作:

代码语言:javascript
复制
Arrays.stream(<Your array>).distinct()
    .forEach(System.out::println);

distinct()

返回一个由该流的不同元素(根据>Object.equals(Object))组成的流

查看有关stream的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57370785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档