集合
作者:互联网
集合
对象的容器,定义了对象的常用操作方法完成数组的功能
数组长度固定,集合长度不固定
Collection
list 动态数组,有下标,有序,不唯一
ArrarList
数组结构实现,
查询快,增删慢 线程不安全(数据丢失)
size()
add()
remove()
Vector 运行效率慢,线程安全,
LinkedList
链表实现
增删快+
Collections 工具类
类点方法名
shuffle(list) 打乱方法
reverse(list) 反转集合
sort(list)升序排序
checkedList(数组,类型);检查list泛型数据是否一致
set 无序唯一无下标。数据去重
HashSet 唯一,无序
hash算法:结合数组和链表的优势,
hashcode:确定桶中的位置
equals:比较是否是同一个对象,决定是去是留
hash桶
- 通过对象的hash值确定放到那个桶
- 不同的hash值可能映射到同一个桶里,这样就产生了hash冲突
- 如果hash冲突了,就使用equals方法判断是不是同一个地址
- 若果用equals比较相等则认为是同一个元素,丢掉第二个
- 若果用equals比较得到false,则认为是两个不同的元素要占用同一个桶,把元素做成链表放到桶里 8个做成红黑树
LinkedHashSet 有序
在hashset基础上新加双向链表,
通过双向链表遍历保证顺序
SortedSet 排序 TreeSet
基于 二叉树 排序顺序实现元素不重复
Map
迭代器
- 集合.iterator();
Iterator<Student> itor = student.iterator();
//2.
while itor.hasNext()){
itor.next();
itor.remove();
}
next()
hasNext()
泛型
参数化类型,将类型作为参数传递
限制类型 不用转型
//泛型类
public class Test<T>{
//泛型方法
public T getAA(){
通过反射new出来
}
}
标签:itor,hash,list,链表,泛型,数组,集合 来源: https://www.cnblogs.com/chahune/p/16471564.html