利用Java Set 去除重复object的方法
程序员文章站
2024-03-08 18:04:40
实例如下:
import java.util.arraylist;
import java.util.hashset;
import java.util.li...
实例如下:
import java.util.arraylist; import java.util.hashset; import java.util.list; import java.util.set; /** * 编写者:cp * <br />类描述:set集合针对string 类型和8大基础数据类型 过滤掉重复数据,如果存放的是其他类型对象,则需要重写hashcode方法和equals方法,当equals 比较相等时,则会去比较hashcode值 hashcode的值 如果一致的话,则不会存进set */ public class setdemo { public static void main(string[] args) { set<string> nameset = new hashset<string>(); nameset.add("张三"); nameset.add("李四"); nameset.add("王五"); nameset.add("张三"); // 输出结果 张三 李四 王五 for(string name : nameset){ system.out.print(name + "\t"); } // list集合去除重复基础数据 list<string> namelist = new arraylist<string>(); namelist.add("张三"); namelist.add("李四"); namelist.add("王五"); namelist.add("赵六"); nameset.addall(namelist); // 输出结果 张三 李四 王五 赵六 for(string name : nameset){ system.out.print(name + "\t"); } // 去除编号和用户名一样的 对象,需要重写 equals 方法 和 hashcode方法 user admin = new user(1, "admin"); user user = new user(2, "user"); user user1 = new user(2, "user"); user admin1 = new user(3, "admin"); set<user> userset = new hashset<user>(); userset.add(admin); userset.add(user); userset.add(admin1); userset.add(user1); // 输入结果 admin1 admin3 user2 for(user u : userset){ system.out.print(u.username + u.id + "\t"); } system.out.println(user.equals(null)); } } class user{ protected integer id; protected string username; public user(integer id, string username){ this.id = id; this.username = username; } /** * 如果对象类型是user 的话 则返回true 去比较hashcode值 */ @override public boolean equals(object obj) { if(obj == null) return false; if(this == obj) return true; if(obj instanceof user){ user user =(user)obj; // if(user.id = this.id) return true; // 只比较id // 比较id和username 一致时才返回true 之后再去比较 hashcode if(user.id == this.id && user.username.equals(this.username)) return true; } return false; } /** * 重写hashcode 方法,返回的hashcode 不一样才认定为不同的对象 */ @override public int hashcode() { // return id.hashcode(); // 只比较id,id一样就不添加进集合 return id.hashcode() * username.hashcode(); } }
以上这篇利用java set 去除重复object的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。