Java collection集合归纳

Set:元素无序,不可重复,非线程安全

  1. HashSet(常用):使用hashcode()方法和equal()方法比较元素大小,两个方法结果只要有一个不同都可插入元素。
  2. TreeSet:采用红黑树的数据结构存储元素,默认使用自然排序(要求加入其中的元素实现Comparable接口的compareTo()方法)。
  3. LinkedHashSet:采用链表的结构按插入顺序排列元素。

List:元素有序,可重复

  1. ArrayList(常用):非线程安全。底层采用Object数组存储,随机访问速度快。
  2. LinkedList:以链表来存储,插入,删除操作较快。遍历时使用Iterator效率较高。
  3. Vector(过时):线程安全

Map:以键值对方式存储,key值不可重复,value可重复

  1. HashMap(常用):非线程安全,key值可以为null。保证key值不重复也是通过比较key值的hashcode()和equal方法
  2. Hashtable(少用):线程安全,key和value都不可为null
  3. TreeMap:采用红黑树结构根据key值有序存储,速度较慢。

补充:

  1. HashMap、HashSet中有关性能的一些参数

    容量(capacity):hash表的大小
    初始化容量(initial capacity):创建时的容量
    尺寸(size):当前hash表中的记录数量
    负载因子(load factor):大小为”size / capacity“

  2. 使用Collections工具类中的synchornizedXxx()方法可以解决一些集合的线程不同步问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值