首页 > 应用开发 > Java > List 去重的 6 种方法,这个方法最完美
public class ListDistinctExample {public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>() {{add(1);add(3);add(5);add(2);add(1);add(3);add(7);add(2);}};System.out.println("原集合:" + list);method(list);}/** * 自定义去重 * @param list */public static void method(List<Integer> list) {// 新集合List<Integer> newList = new ArrayList<>(list.size());list.forEach(i -> {if (!newList.contains(i)) { // 如果新集合中不存在则插入newList.add(i);}});System.out.println("去重集合:" + newList);}}复制代码
public class ListDistinctExample {public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>() {{add(1);add(3);add(5);add(2);add(1);add(3);add(7);add(2);}};System.out.println("原集合:" + list);method_1(list);}/** * 使用迭代器去重 * @param list */public static void method_1(List<Integer> list) {Iterator<Integer> iterator = list.iterator();while (iterator.hasNext()) {// 获取循环的值Integer item = iterator.next();// 如果存在两个相同的值if (list.indexOf(item) != list.lastIndexOf(item)) {// 移除最后那个相同的值iterator.remove();}}System.out.println("去重集合:" + list);}}复制代码
public class ListDistinctExample {public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>() {{add(1);add(3);add(5);add(2);add(1);add(3);add(7);add(2);}};System.out.println("原集合:" + list);method_2(list);}/** * 使用 HashSet 去重 * @param list */public static void method_2(List<Integer> list) {HashSet<Integer> set = new HashSet<>(list);System.out.println("去重集合:" + set);}}复制代码
public class ListDistinctExample {public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>() {{add(1);add(3);add(5);add(2);add(1);add(3);add(7);add(2);}};System.out.println("原集合:" + list);method_3(list);}/** * 使用 LinkedHashSet 去重 * @param list */public static void method_3(List<Integer> list) {LinkedHashSet<Integer> set = new LinkedHashSet<>(list);System.out.println("去重集合:" + set);}}复制代码
public class ListDistinctExample {public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>() {{add(1);add(3);add(5);add(2);add(1);add(3);add(7);add(2);}};System.out.println("原集合:" + list);method_4(list);}/** * 使用 TreeSet 去重(无序) * @param list */public static void method_4(List<Integer> list) {TreeSet<Integer> set = new TreeSet<>(list);System.out.println("去重集合:" + set);}}复制代码
public class ListDistinctExample {public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>() {{add(1);add(3);add(5);add(2);add(1);add(3);add(7);add(2);}};System.out.println("原集合:" + list);method_5(list);}/** * 使用 Stream 去重 * @param list */public static void method_5(List<Integer> list) {list = list.stream().distinct().collect(Collectors.toList());System.out.println("去重集合:" + list);}}复制代码
版权声明:本文为原创文章,转载请附上原文出处链接及本声明。下载相关视频学习资料到尚硅谷官方网站。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27721058/viewspace-2852238/ ,如需转载,请注明出处,否则将追究法律责任。