数据结构(数据的存储方式)
顺序结构:数组
链式结构:(单链表 双链表 循环列表 内核链表)
Hash存储:Hash表(查询速度最快)
ArrayList集合底层是数组:
缺点:需要开辟一段连续的空间,插入和删除会造成成片的数据移动,效率低;
优点:查询速度快
LikedList集合底层是链表:
缺点:查询速度慢
优点:不需要开辟一段连续的空间,插入和删除 效率高
HashSet集合底层是Hash表
LinkedHashSet集合底层是Hash表和链表
栈: 先进后出
队列: 先进先出
LinkedList:栈结构
特有方法:可以对集合的开头和结尾进行操作
addFrist(E e)//添加到链表开头
addLast(E e)//添加到链表结尾
getFrist();//获取链表的第一个元素
getLast();//获取链表的最后一个元素
push(E e)//入栈
Pop();//出栈, 出一个删一个
isEmpty()//是否为空
List.push(“A”);
List.push(“A”);
While(!list.isEmpty){
System.out.println(list.pop());
}
Set集合 HashSet LinkedHashSet
与list集合的区别: Set集合元素唯一,不能保证元素的存取顺序一致,
保证元素的唯一性
重写hashCode()方法 equals()方法:
先利用判断Hash值如果不同,直接添加到集合
如果相同,利用equals方法判断内容,内容一样不添加,内容不一样 添加
对象一样,哈希值一定一样
哈希值一样,对象不一定一样
Boolean addAll(Collection