Java中的集合(2)

本文深入解析Java集合框架,包括Set、Map等核心接口,探讨HashSet、LinkedHashSet、TreeSet的不同特性,以及HashMap的工作原理。文章重点阐述了各种集合的内部机制、数据存储方式和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二 Set (Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素)
在这里插入图片描述

在这里插入图片描述

Set集合的子集合 HashSet 按照哈希算法来存取集合中的对象 存取速度比较快

当程序向HashSet中 add()的一个对象的时候, 先用hashCode方法计算出该对象的哈希码 哈希码不一致 添加 哈希码一致
不添加 相同对象不添加 然后用equals判断对象的属性是否一致 比较结果为false就添加 true就不添加 不同对象添加

HashSet

在用Set集合的时候我几乎用的都是HashSet,HashSet是使用Hash表实现的,集合里面的元素是无序得,可以有null值,但是不能有重复元素。

特点:因为相同的元素具有相同的hashCode,所以不能有重复元素

基本数据类型包装类/String 已经重写了hashCode 和 equals 会自动比较
自定义实现类要重写其hashCode和equals方法,规定自定义类的比较规则来排重.

在这里插入图片描述

LinkedHashSet 特点:
1.有序(存取一致)
是Set集合中唯一一个能保证怎么存就怎么取的集合对象
2.排重
3.底层是双向链表 HashSet的方法怎么用 LinkedHashSet就怎么用 TreeSet 二叉树 实现了SortedSet接口 能够对集合中对象进行排序

特点:
1.排序的(升序) 自然排序 根据ASCII表大小排序
2.排重
3.无序(存取不一致)
4.底层是一个二叉树(左序中序右序)
5.只能存储同一种类型 才能排序 不然就会出现转换异常 自定义实现类 如何比较

TreeSet

TreeSet是用二叉树结构实现的集合

特点:集合中的元素是有顺序得,不允许放入null,同样不能放入重复元素。

三、Map
Map接口中键和值一一映射. 可以通过键来获取值。

给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。
当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常.
当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。
当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException 异常。
当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。

在这里插入图片描述
在这里插入图片描述
HashMap特点:
在这里插入图片描述

TreeMap特点:
在这里插入图片描述

TreeMap 特殊方法:
在这里插入图片描述

TreeMap是基于红黑树实现的;
HashMap 是基于是哈希值实现的;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值