一、LindedList
LinkedList底层数据结构是链表,所以有针对头节点和尾节点操作的办法。
二、Set接口
办法与Collection一样
不蕴含反复元素
没有带索引的办法,不能用***一般for***遍历
2.1 案例:存储字符串并遍历
创建对象:
Set是接口
须要用实现类HashSet()来创立
Set<String> s = new HashSet<String>();
HashSet()不对存储程序保障
Set()不蕴含反复元素
2.2 哈希值
同一个对象的hash值一样
默认状况下,不同对象的hash值不同。
(如果在类里重写了hashCode(),能够实现不同对象的哈希值雷同
三、HashSet()类
public class HashSet() implements Set
- HashSet汇合实现了Set接口,底层是哈希表
- 无序,存入和取出的程序不能保障统一
- 没有索引办法,不能一般for遍历,然而能够Iterator 和 加强for遍历
-
和Set一样不蕴含反复元素
四、HashSet如何保障无反复元素
五、哈希表
是一种数据结构
JDK8之前底层是数组+链表
JDK8之后长度过长时进行了优化
首先计算存入字符串的哈希值,HashSet()无参构造方法默认长度是16,而后将哈希值对16取余,按余数存储。
余数雷同,看哈希值是否雷同,哈希值雷同看内容是否雷同,这里雷同就不存进去。
发表回复