当前位置: 首页 > news >正文

番禺建设网站企业苏州网站制作网站建设

番禺建设网站企业,苏州网站制作网站建设,抖音代运营报价单(仅供参考),制作哈尔滨主题的网页前言: 还记得在2021我发布的第一篇博客就是关于数组的去重,从那一刻开始,命运的齿轮开始转动…… 扯远了哈哈哈,我重新写这篇文章只是想让去重方式更加严谨(ps:我才不会说是因为技术成长了,看不上之前写的…

前言:

还记得在2021我发布的第一篇博客就是关于数组的去重,从那一刻开始,命运的齿轮开始转动……

扯远了哈哈哈,我重新写这篇文章只是想让去重方式更加严谨(ps:我才不会说是因为技术成长了,看不上之前写的了哈哈哈

方式一:

 依据Set集合的特性,使用set去重(最简洁高效)

/*** 使用set去重** @param list*/
private void setDistinct(List<String> list) {System.out.println("Set 开始去重,条数:" + list.size());List<String> listDistinctResult = new ArrayList<>(new HashSet(list));System.out.println("Set 去重完毕,条数:" + listDistinctResult.size());
}

方式二:

 使用高级的stream流方式去重(可读性高,效率高)

/*** 使用Stream 去重** @param list*/
private void useStreamDistinct(List<String> list) {System.out.println("stream 开始去重,条数:" + list.size());List<String> listDistinctResult = list.stream().distinct().collect(Collectors.toList());System.out.println("stream 去重完毕,条数:" + listDistinctResult.size());
}

方式三:

 使用list.contain去重(效率一般)

/*** 使用 list.contain 去重,返回一个新集合** @param list*/
private void listContainDistinct(List<String> list) {System.out.println("contains 开始去重,旧集合条数:" + list.size());List<String> listDistinctResult = new ArrayList<>();for (String str : list) {if (!listDistinctResult.contains(str)) {listDistinctResult.add(str);}}System.out.println("contains 去重完毕,新集合条数:" + listDistinctResult.size());
}

方式四:

喜闻乐见的for循环去重(最常见,数据量大不建议使用)

/*** 使用for循环去重* @param list*/
private void useForDistinct(List<String> list) {System.out.println("list 双循环 开始去重,条数:" + list.size());for (int i = 0; i < list.size(); i++) {for (int j = i + 1; j < list.size(); j++) {if (list.get(i).equals(list.get(j))) {list.remove(j);}}}System.out.println("list 双循环  去重完毕,条数:" + list.size());
}

特殊情况:

以上都是简单的list集合去重,但是当我们遇到一些特殊情况,比如:当一个集合中存的是Map,Map中有一些键值是重复,而我们需要去除这些重复的对象;以上的三种方式就不太适用了,这种情况就只能使用多层级for循环来做了(这种复杂情况应该可以使用stream来做,不过没试过就不说了),当然数据量大的话肯定效率是比较吃紧的,因此如果在不需要数据实时同步的情况下,可以考虑新开线程去执行这个去重然后走之后的业务流程

这种特殊情况的代码如下:

/*** 数组去重* (目前仅针对于前三列相同进行去重;* 例如:业务层面来讲:即当用户名,身份证,手机号,邮箱等重要信息都相同时,* 去除这一重复数据)* * @param dataList* @return*/private List<Map<Integer, String>> removeSameMapData(List<Map<Integer, String>> dataList) {int i = 0;List<Map<Integer, String>> distinctList = new ArrayList<>();for (Map<Integer, String> map : dataList) {boolean isDuplicate = false;for (Map<Integer, String> distinctMap : distinctList) {for (Map.Entry<Integer, String> entry : map.entrySet()) {Integer key = entry.getKey();if (key <= 3 && StringUtils.equals(map.get(key), distinctMap.get(key))){i ++;}if (i >= 3){i = 0;isDuplicate = true;break;}}}if (!isDuplicate) {distinctList.add(map);}}return distinctList;}

http://www.yayakq.cn/news/894138/

相关文章:

  • 宝塔建站wordpress免费建网站流程
  • 淮北市网站制作公司长沙网站推广公司
  • 网站开发html书籍下载正规html5网站
  • 免费域名申请 tk上海互联网seo公司
  • 电商 网站开发 哪个好做海报的简易网站
  • 网站流量如何赚钱dw网页设计免费模板
  • 网站截图环境 php国内十大管理咨询公司
  • 哪里可以学做网站wordpress采集淘宝 插件
  • 沧浪苏州网站建设在线查网站的ip地址
  • 找个为公司做网站的.net 网站开发流程
  • 湖南学校网站建设wordpress登录才可评论
  • 电子商务网站建设第三章答案北京公司网站制作价格
  • 雄安做网站要多少钱python编程语言大全
  • 永久免费自助建站源代码网站建设平台赚钱
  • 官方网站找oem做洗发水厂家为什么现在建设银行要下载网站激活
  • 网站上名片如何做wordpress如何添加商桥
  • 株洲外贸网站建设网站建设与管理上海交通大学
  • phpcms 企业网站网站 .net 多少钱
  • 怎么建设个人主页网站wordpress置顶没用
  • 中山网站推广外包织梦做的网站快照被攻击
  • 成都电商平台网站设计过年做那个网站能致富
  • 建立网站得多少钱网络营销网站开发
  • 音乐网站开发书籍宁波做外贸网站
  • 中小型网站建设精英建设银行镇海支行网站
  • 现在哪个行业做网站需求多点有经验的扬中网站建设
  • 制造业公司有必要建设网站吗wordpress本地图片不显示图片
  • 现在还是和做网站么网页微信登录
  • 官网网站设计学校网站建设的目的
  • 外贸建设网站制作签合网站是哪个好
  • 北京网站建设+知乎南宁庆云网站建设