List集合的去重:转为Set集合进行去重
public void test2() { // 准备数据 Integer[] arr = {42, 14, 28, 34, 56, 2, 14}; List list = new ArrayList(Arrays.asList(arr)); // 准备set集合 Set set = new HashSet(); set.addAll(list); // 清空list原数据,并将新的去重后的数据进行一个添加 list.clear(); // 将指定集合中的所有元素追加到此列表的末尾 list.addAll(set); System.out.println("List=>" + list); System.out.println("Set=>" + set); }
注意:如果List集合中存放的是对象的话,通过Set集合去重需要需要注意,需要在对象中重写HashCode跟equals方法。
List集合的去重:通过List的contains
public void test2() { // 准备数据 Integer[] arr = {42, 14, 28, 34, 56, 2, 14}; List<Integer> list = new ArrayList<>(Arrays.asList(arr)); // 创建一个新的List集合,用于保存去重重复数据的集合 List<Integer> newList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { // 判断newList集合中是否包含元素信息 if (!newList.contains(list.get(i))) { newList.add(list.get(i)); } } System.out.println("List=>" + newList); }
List集合的去重:通过Stream流
public void test2() { // 准备数据 Integer[] arr = {42, 14, 28, 34, 56, 2, 14}; List list = new ArrayList(Arrays.asList(arr)); // 使用JDK8的Stream流进行去重 List newList = (List) list.stream().distinct().collect(Collectors.toList()); System.out.println("List=>" + newList); }