list怎么消除重复元素(去除List集合中的重复值)
list怎么消除重复元素(去除List集合中的重复值)
2024-07-03 11:09:53  作者:柒尛笨  网址:https://m.xinb2b.cn/know/qac190052.html

最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。

但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢?

试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。

//set集合去重,不打乱顺序 public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); Set set = new HashSet(); List newList = new ArrayList(); for (String cd:list) { if(set.add(cd)){ newList.add(cd); } } System.out.println( "去重后的集合: " newList); }123456789101112131415161718 //遍历后判断赋给另一个list集合 public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); List<String> newList = new ArrayList<String>(); for (String cd:list) { if(!newList.contains(cd)){ newList.add(cd); } } System.out.println( "去重后的集合: " newList); }1234567891011121314151617 //set去重 public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); Set set = new HashSet(); List newList = new ArrayList(); set.addAll(list); newList.addAll(set); System.out.println( "去重后的集合: " newList); }12345678910111213141516 //set去重(缩减为一行) public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); List newList = new ArrayList(new HashSet(list)); System.out.println( "去重后的集合: " newList); }12345678910111213

hashset不进行排序,还有一种方法是用treeset,去重并且按照自然顺序排列,将hashset改为treeset就可以了。(原本的顺序是改变的,只是按照字母表顺序排列而已)

//去重并且按照自然顺序排列List newList = new ArrayList(new TreeSet(list));

list怎么消除重复元素(去除List集合中的重复值)(1)

  • 电动三轮车常识大全(要注意这两种型号)
  • 2024-07-04要注意这两种型号相信很多电动三轮车用户都遇到过这样的问题,那就是车辆不耐用,且容易损坏那么,这是什么原因呢?其实,很大程度与你选择的型号有关,特别是以下两种型号,会存在不耐用、容易坏的问题1、电机与电池不匹配的车型对。
  • 团圆饭怎么拍出高级感(扮NEW家只需一块桌布)
  • 2024-07-04扮NEW家只需一块桌布新年将至,给家中添置什么物品能改变风格?有时候,只需要一块桌布,就能让空间充满新鲜感近年来,轻奢风、田园风、INS风的桌布都特别流行,新年换一张桌布,让生活更有仪式感,妥妥的热爱生活的表现※北欧风格大。
  • 寻找美丽的马兰花(让马兰花儿永久绽放在太行山上)
  • 2024-07-04让马兰花儿永久绽放在太行山上孩子们在认真上课孩子们看到保定日报的报道,高兴地寻找自己的名字马兰花儿童声合唱团正在排练,为音乐节做准备孩子们在音乐城堡前献花,缅怀邓小岚老师5月入夏的马兰,处处被绿意包裹山间的各色花儿缤纷绚烂,点缀。
  • 百叶窗灰色的好看吗(颜值和实用兼备的百叶窗了解一下)
  • 2024-07-04颜值和实用兼备的百叶窗了解一下在软装设计中,窗帘作为空间上的大头,一直都是重中之重!选择适合的窗帘对家中风格和氛围的塑造意义非凡不同于布艺窗帘的柔软或沉稳的空间质感,占地少,不累赘的百叶窗凭借着超高的颜值和出色的光影效果,受到了越。
  • 上海青浦雷克萨斯(上海嘉定和凌雷克萨斯开业)
  • 2024-07-04上海嘉定和凌雷克萨斯开业7月9日,上海嘉定区首家雷克萨斯授权经销店——上海嘉定和凌雷克萨斯正式开业开业当天,厂家领导、嘉定园区领导、和通汽车集团领导、同城兄弟店总经理及众多嘉宾与媒体莅临现场,共同见证这一荣耀时刻上海嘉定和凌。
  • 上学那几年遇到的老师们(家有高中生7)
  • 2024-07-04家有高中生7平凡人家的高中女生成长日志,妈妈20万字记录女儿高中3年时光“家有高中生”系列第7篇:高中生的第2个周末,回到家,谈到了自己的老师们,原来,都是头戴光环一样的存在我只能说,喜欢老师的孩子,不管学习成绩。
  • 到底有没有1999保密协议(带你揭晓1999年保密协议)
  • 2024-07-04带你揭晓1999年保密协议“小花你有听过九九年的那件事吗?”“什么事?”“尘封于九九年那份保密协议中隐藏的秘密”“秘密?什么秘密?我没听过哎!”“也是,你都是零零后的了,肯定不知道,那今天就让我这位签署过保密协议的人冒着违反协。
  • 绿箭侠人物结局(留给奥利弗奎恩的是悲剧结局吗)
  • 2024-07-04留给奥利弗奎恩的是悲剧结局吗绿箭侠将于第八季完结,这部让国内无数人认识到DC的男人即将离去今年秋季播放的绿箭侠第八季将会成为最后一步绿箭侠,而且第八季仅有10集,正好播放到绿箭侠闪电侠明日传奇等五部剧的联合剧情,预告也称其为无限。