集合

集合

image

对象的容器,定义了对象的常用操作方法完成数组的功能

数组长度固定,集合长度不固定

Collection

list 动态数组,有下标,有序,不唯一

ArrarList

数组结构实现,
查询快,增删慢 线程不安全(数据丢失)
size()
add()
remove()

Vector 运行效率慢,线程安全,

LinkedList

链表实现
image

增删快+

Collections 工具类

类点方法名
shuffle(list) 打乱方法
reverse(list) 反转集合
sort(list)升序排序
checkedList(数组,类型);检查list泛型数据是否一致

set 无序唯一无下标。数据去重

HashSet 唯一,无序

hash算法:结合数组和链表的优势,
hashcode:确定桶中的位置
equals:比较是否是同一个对象,决定是去是留
image

hash桶

  1. 通过对象的hash值确定放到那个桶
  2. 不同的hash值可能映射到同一个桶里,这样就产生了hash冲突
  3. 如果hash冲突了,就使用equals方法判断是不是同一个地址
  4. 若果用equals比较相等则认为是同一个元素,丢掉第二个
  5. 若果用equals比较得到false,则认为是两个不同的元素要占用同一个桶,把元素做成链表放到桶里 8个做成红黑树

LinkedHashSet 有序

在hashset基础上新加双向链表,
通过双向链表遍历保证顺序

SortedSet 排序 TreeSet

基于 二叉树 排序顺序实现元素不重复
1.
image
2.
image

Map

迭代器

  1. 集合.iterator();
Iterator<Student> itor = student.iterator();
//2.
while itor.hasNext()){
      itor.next();
	  itor.remove();
}

next()
hasNext()

泛型

参数化类型,将类型作为参数传递
限制类型 不用转型

//泛型类
public class Test<T>{
//泛型方法
    public T getAA(){
        通过反射new出来
    }
}
posted @ 2022-07-12 20:30  chahune  阅读(48)  评论(0编辑  收藏  举报