其他分享
首页 > 其他分享> > 集合

集合

作者:互联网

集合

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

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

Collection

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

ArrarList

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

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

LinkedList

链表实现
增删快+

Collections 工具类

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

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

HashSet 唯一,无序

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

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

LinkedHashSet 有序

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

SortedSet 排序 TreeSet

基于 二叉树 排序顺序实现元素不重复

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出来
    }
}

标签:itor,hash,list,链表,泛型,数组,集合
来源: https://www.cnblogs.com/chahune/p/16471564.html