欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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