下文筆者講述list對象的去重方法分享,list的實現類是我們存儲數據的容器,
當里面存儲的對象存在重復值時,我們該如何對其進行去重操作呢?
下文筆者將一一道來,首先我們需了解對象是否重復,需借助equals方法進行判斷,所以我們需重寫equals方法,
然后再將list中的數據放入到set集合中,使其自動去重,如下所示:
實現思路: 1.重寫類中的hashcode和equals方法
2.將list對象放入一個set對象中即可達到自動去重的效果
package com.java265.other; import java.util.*; public class test { public static void main(String[] args) { /* * author:java265.com * list去重操作示例分享 * */ List<User> list = new ArrayList<>(); list.add(new User("1","xiaoming")); list.add(new User("2","xiaoming")); list.add(new User("3","xiaoming")); list.add(new User("4","xiaoming")); list.add(new User("4","xiaoming")); System.out.println(list); System.out.println("------------"); //去重 Set<User> set = new HashSet<>(); set.addAll(list); System.out.println(set); } } class User{ private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public User() { } public User(String id,String name){ this.id = id; this.name = name; } @Override public String toString() { return "User{" + "id='" + id + '\'' + ", name='" + name + '\'' + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; User user = (User) o; return Objects.equals(id, user.id) && Objects.equals(name, user.name); } @Override public int hashCode() { return Objects.hash(id, name); } }
轉自:http://java265.com/JavaJingYan/202112/16385440541991.html