如何实现List 集合

小咪咪 2023-10-05 23:40 105阅读 0赞

如何实现List 集合去重?

  1. 3种实现思路:
  2. 1.自定义方法去重,通过循环判断当前的元素是否存在多个,如果存在多个,则删除此重复项,循环整个集合最终得到的就是一个没有重复元素的List
  3. 1)首先我们可以创建一个新的集合,通过循环原集合判断循环的元素,是否存在于新集合,如果不存在就插入,存在了就忽略,这样循环玩,这样循环完了,最终新的集合就是没有重复元素的集合。
  4. import lombok.Data;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. public class DistinctExample {
  8. public static void main(String[] args) {
  9. // 创建并给 List 赋值
  10. List<Person> list = new ArrayList<>();
  11. list.add(new Person("李四", "123456", 20));
  12. list.add(new Person("张三", "123456", 18));
  13. list.add(new Person("王五", "123456", 22));
  14. list.add(new Person("张三", "123456", 18));
  15. // 去重操作
  16. List<Person> newList = new ArrayList<>(list.size());
  17. list.forEach(i -> {
  18. if (!newList.contains(i)) {
  19. // 如果新集合中不存在则插入
  20. newList.add(i);
  21. }
  22. });
  23. // 打印集合
  24. newList.forEach(p -> System.out.println(p));
  25. }
  26. }
  27. @Data
  28. class Person {
  29. private String name;
  30. private String password;
  31. private int age;
  32. public Person(String name, String password, int age) {
  33. this.name = name;
  34. this.password = password;
  35. this.age = age;
  36. }
  37. }
  38. 2)使用迭代器循环并且判断当前元素首次出现的位置(indexOf)是否等于最后出现的位置(IastIndexOf),如果不等于则说明此元素为重复元素,最终就能得到一个没有重复元素的集合。
  39. import lombok.Data;
  40. import java.util.ArrayList;
  41. import java.util.Iterator;
  42. import java.util.List;
  43. public class DistinctExample {
  44. public static void main(String[] args) {
  45. // 创建并给 List 赋值
  46. List<Person> list = new ArrayList<>();
  47. list.add(new Person("李四", "123456", 20));
  48. list.add(new Person("张三", "123456", 18));
  49. list.add(new Person("王五", "123456", 22));
  50. list.add(new Person("张三", "123456", 18));
  51. // 去重操作
  52. Iterator<Person> iterator = list.iterator();
  53. while (iterator.hasNext()) {
  54. // 获取循环的值
  55. Person item = iterator.next();
  56. // 如果存在两个相同的值
  57. if (list.indexOf(item) != list.lastIndexOf(item)) {
  58. // 移除相同的值
  59. iterator.remove();
  60. }
  61. }
  62. // 打印集合信息
  63. list.forEach(p -> System.out.println(p));
  64. }
  65. }
  66. @Data
  67. class Person {
  68. private String name;
  69. private String password;
  70. private int age;
  71. public Person(String name, String password, int age) {
  72. this.name = name;
  73. this.password = password;
  74. this.age = age;
  75. }
  76. }
  77. 2.利用HashSet去重
  78. List<String> list = new ArrayList<>();
  79. list.add("a");
  80. list.add("b");
  81. list.add("a");
  82. list.add("b");
  83. //利用HashSet去重
  84. //利用List中的元素创建HashSet集合,此时set中进行了去重操作
  85. HashSet set = new HashSet(list);
  86. //清空list集合
  87. list.clear();
  88. //将去重后的元素重新添加到list中
  89. list.addAll(set);
  90. HashSet 去重之后,元素的先后顺序也发生了改变
  91. Set集合依靠自带的去重特性,可以很方便的实现去重功能,并且可以用LinkedHastSet再去重的同时又保证了元素所在的位置不被更改
  92. 3.通过Listcontains()方法去重
  93. // 创建一个新的list集合,用于存储去重后的元素
  94. List listTemp = new ArrayList();
  95. // 遍历list集合
  96. for (int i = 0; i < list.size(); i++) {
  97. // 判断listTemp集合中是否包含list中的元素
  98. if (!listTemp.contains(list.get(i))) {
  99. // 将未包含的元素添加进listTemp集合中
  100. listTemp.add(list.get(i));
  101. }
  102. }

发表评论

表情:
评论列表 (有 0 条评论,105人围观)

还没有评论,来说两句吧...

相关阅读

    相关 List集合

    List是Java集合框架中最常用的集合类型之一,它允许我们存储有序的元素集合,通过索引可以轻松访问和操作这些元素。 List是一个接口,Java提供了多个实现List接口的类

    相关 如何实现List 集合

    如何实现List 集合去重? 3种实现思路: 1.自定义方法去重,通过循环判断当前的元素是否存在多个,如果存在多个,则删除此重复项,循环整个集合

    相关 List集合

    介绍 > List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List集合允许加入重复元素,因为它可以通过索引来访问指定位置的集合元素。Lis

    相关 List集合排序的实现

    list集合排序的实现 根据对象属性进行排序 简单说明一下:对list集合中的User进行排序,根据其姓名和年龄进行排序。直接看代码,User类我就不写了