首页   >   代码编程   >   JAVA开发

Java如何简单快速的实现数组元素去重

在编码的时候,经常会遇到一些看似很简单比如排序啊,找重复值啊等等这种,但是一时头脑闪现到的结果都是,循环啊,循环啊。。。。。

其实这都是我们本身对集合的一些应用太过于表面,或者说提起来说的头头是道,但是应用起来都没有想到。

最近我就遇到一个这样问题,因为一些计算需要对一个String集合做去重处理:

List<String> list = new Arraylist();
list.add("aaa");
list.add("111");
list.add("aaa");
list.add("222");

首先想到的方法是,做循环,类似以下两种方式:

// 方法一:嵌套for循环
for (int i = 0; i < list.size() - 1; i++) {
    for (int j = list.size() - 1; j > i; j--) {
        if (list.get(j).equals(list.get(i))) {
            list.remove(j);
        }
    }
}
// 方法二:利用contains方法
List newList = new ArrayList();
for(int i=0;i<newList.size();i++){
    if(!newList.contains(newList.get(i))){
        newList.add(newList.get(i));
    }
}

但其实,我们不要忘了,集合三大类,List 、Set 、 Map的属性,因为Set存值是无序、不能重复的,这样我们就可以利用Set做去重:

Set set = new HashSet(list);
String[] str= (String[]) set.toArray(new String[0]);
Arrays.sort(str);//如果需要有序,可以直接排个序

方法简单实用,如果在面试中遇到面试官提到类似集合的问题,不要再一直说循环循环,这样才显得自己基础比较扎实!

QQ群: 686430774  /  718410762

站长Q: 1347384268

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

欢迎分享本文,转载请注明出处!

作者:不忘初心

发布时间:2019-07-28

永久地址:https://www.jiweichengzhu.com/article/5c1bfc0d6d14491cb81c26d0bbd66379

评论