zoukankan      html  css  js  c++  java
  • ArrayList去重

     1 import java.util.ArrayList;
     2 import java.util.List;
     3 
     4 public class ArrayList_Test {
     5     public static void main(String[] args) {
     6         List<Student> stus = new ArrayList<>();
     7 
     8         stus.add(new Student("zhangsan"));
     9         stus.add(new Student("lisi"));
    10         stus.add(new Student("zhangsan"));
    11         stus.add(new Student("zhangsan"));
    12         stus.add(new Student("wangwu"));
    13 //   第一种
    14 //        for (int i = 0; i < stus.size() - 1; i++) {
    15 //            for (int j = i + 1; j < stus.size()-1; j++) {
    16 //                if (stus.get(i).getName().equals(stus.get(j).getName())) {
    17 //                    stus.remove(stus.get(i));
    18 //                }
    19 //            }
    20 //        }
    21 //        System.out.println(stus);
    22 //        第二种
    23 //        定义一个新集合
    24         List<Student> stus2 = new ArrayList<>();
    25         for (int i = 0; i < stus.size(); i++) {
    26             if (!stus2.contains(stus.get(i))) {// 内部调用了equals方法,所以比的是栈中的引用地址,所以要重写equals方法
    27                 stus2.add(stus.get(i));
    28             }
    29         }
    30         System.out.println(stus2);
    31 
    32     }
    33 }
    34 
    35 class Student {
    36     String name;
    37 
    38     public Student(String name) {
    39         this.name = name;
    40     }
    41 
    42     public String getName() {
    43         return name;
    44     }
    45 
    46     public void setName(String name) {
    47         this.name = name;
    48     }
    49 
    50     @Override
    51     public String toString() {
    52         return "Student [name=" + name + "]";
    53     }
    54 
    55     @Override
    56     public int hashCode() {
    57         final int prime = 31;
    58         int result = 1;
    59         result = prime * result + ((name == null) ? 0 : name.hashCode());
    60         return result;
    61     }
    62 
    63     @Override
    64     public boolean equals(Object obj) {
    65         if (this == obj)
    66             return true;
    67         if (obj == null)
    68             return false;
    69         if (getClass() != obj.getClass())
    70             return false;
    71         Student other = (Student) obj;
    72         if (name == null) {
    73             if (other.name != null)
    74                 return false;
    75         } else if (!name.equals(other.name))
    76             return false;
    77         return true;
    78     }
    79 
    80 }
  • 相关阅读:
    CGLib实现不同类中同名不同类型属性复制
    stream 伪复用实现
    年终盘点 | 2020年,国内私有云正式进入3.0时代
    高危端口135,137,138,139,445,1025,2475,3127,6129,3389,593
    在jsp引入js失败,提示404
    安全漏洞扫描
    Go 实现的文件行数统计工具
    .NET Core 获取域名 DNS 解析记录
    .NET Core 操作 Windows 注册表
    .NET MongoDb BsonDocument 序列化
  • 原文地址:https://www.cnblogs.com/19322li/p/10681118.html
Copyright © 2011-2022 走看看