【第十一章 Set接口添加元素过程及其特性,HashSet,LinkedHashSet,TreeSet】

本文详细介绍了Java中Set接口的特性,包括无序性和不可重复性。重点讨论了HashSet、LinkedHashSet和TreeSet的区别与使用场景。HashSet基于哈希表实现,插入元素时依赖hashCode()和equals()方法;LinkedHashSet保持插入顺序;TreeSet则根据对象的特定属性进行排序。同时强调了重写hashCode()和equals()方法的重要性。
摘要由CSDN通过智能技术生成

第十一章 Set接口添加元素过程及其特性,HashSet,LinkedHashSet,TreeSet

1.Set接口概述
①Set接口是Collection的子接口,set接口没有提供额外的方法;
②Set 存储无序的,不可重复的数据;
③Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals() 方法。
2.HashSet,LinkedHashSet,TreeSet
①HashSet:作为Set的主要实现类,线程不安全的,可以存储null值。
②LinkedHashSet:作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序遍历。
③TreeSet:可以按照添加对象的指定属性,进行排序。
3.重写hashCode()和equals()
要求:
向Set中添加的数据,其所在的类一定要重写hashCode()和equals()。 重写hashCode()和equals()尽可能保持一致:相等的对象必须具有相等的散列码
①重写 hashCode() 方法的基本原则:
a.在程序运行时,同一个对象多次调用 hashCode() 方法应该返回相同的值。
b.当两个对象的 equals() 方法比较返回 true 时,这两个对象的 hashCode()方法的返回值也应相等。
c.对象中用作 equals() 方法比较的 Field,都应该用来计算 hashCode 值。
②重写 equals() 方法的基本原则:
a.相等的对象必须具有相等的散列码。
b.复写equals方法的时候一般都需要同时复写hashCode方法。通常参与计算hashCode的对象的属性也应该参与到equals()中进行计算。
4.Set接口:无序性,不可重复性
以HashSet为例说明:
①无序性:不等于随机性,存储时数据在底层数组中并非按照数组索引的顺序添加,而是根据数据的哈希值决定的。
②不可重复性:保证添加的元素按照equals()判断时,不能返回true,即:相同的元素只能添加一个。

 @Test
    public void test(){
   
        Set set=new HashSet();
        set.add(456);
        set.add(123);
        set.add("AA");
        set.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值