List set 去重

list集合中的重复值Set处理

試著忘記壹切 提交于 2020-03-02 02:56:48
最近项目中需要对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); } // 遍历 后判断赋给另一个list集合 public static void