您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发

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

不忘初心 不忘初心 2019-07-28 围观() 评论() 点赞() JAVA开发

简介:在编码的时候,经常会遇到一些看似很简单比如排序啊,找重复值啊等等这种,但是一时头脑闪现到的结果都是for循环,但是这样效率是很低的,我们要如何简单快速的实现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);//如果需要有序,可以直接排个序

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

java数组

看完文章,有任何疑问,请加入群聊一起交流!!!

很赞哦! ()

文章评论

  • 请先说点什么
    人参与,条评论

请使用电脑浏览器访问本页面,使用手机浏览器访问本页面会导致下载文件异常!!!

雨落无影

关注上方公众号,回复关键字【下载】获取下载码

用完即删,每次下载需重新获取下载码

若出现下载不了的情况,请及时联系站长进行解决

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们