Java - List 去重,获取唯一值,分组列出所属对应集合
问题:List 去重,获取唯一值,分组列出所属对应集合
方案一:这个不需要额外的内存占用
//遍历后判断赋给另一个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); }
方案二:会占用额外的内存空间,毕竟有一个 HashSet
集合,元素顺序会是原来的顺序
//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); }
参考链接
1. java实现list集合元素不重复的方法