HashSet和LinkedHashSet存储自定义类型元素
程序员文章站
2022-05-03 23:48:57
HashSet存储自定义类型元素set集合报错元素唯一:存储的元素(String、Integer、、、、)必须重写hashCode方法和equals方法要求:同名同龄的人,视为同一个人,只能存储一次public class demo01HashSetSavePerson {public static void main(String[] args) { //创建hashSet集合存储Person HashSet set = new HashSet<...
HashSet存储自定义类型元素
set集合报错元素唯一:
存储的元素(String、Integer、、、、)必须重写hashCode方法和equals方法
要求:
同名同龄的人,视为同一个人,只能存储一次
public class demo01HashSetSavePerson {
public static void main(String[] args) {
//创建hashSet集合存储Person
HashSet<Person> set = new HashSet<>();
Person p1 = new Person("jack",18);
Person p2 = new Person("boy",12);
Person p3 = new Person("boy",12);
System.out.println(p2.hashCode());
System.out.println(p3.hashCode());
System.out.println(p2==p3);
System.out.println(p2.equals(p3));
set.add(p1);
set.add(p2);
set.add(p3);
System.out.println(set);
}
}
LinkedHashSet存储自定义类型元素
继承于HashSet集合
特点:
底层是一个哈希表(数组+链表/红黑树)+链表 记录元素的存储顺序 保证元素有序
public class demo02LinkedHashSet {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add("abc");
set.add("wwww");
set.add("abc");
set.add("itcast");
System.out.println(set);//无序 不允许重复
LinkedHashSet<String> set2 = new LinkedHashSet<>();
set2.add("wwww");
set2.add("abc");
set2.add("abc");
set2.add("itcast");
System.out.println(set2);//有序 不允许重复
}
}
本文地址:https://blog.csdn.net/xxxjackboy/article/details/109258673