java容器

java容器主要有两大类:collection和map;

collection又可以根据子类分为两大类List和set;

  1. List集合特征:有序可重复;允许元素为null;实现Collection接口;增删慢查询快;list常用的子类为Victor、ArrayList、linkedList三种;
  • victor底层为数组结构,线程安全、初始长度为10,扩容后每次增长为2倍,目前已被ArrayLis取代;
  • ArrayList底层为数组结构、非线程安全的、初始长度为10,扩容后每次增长为1.5倍,增删的时候需要数组的拷贝与复制,增删慢查询快;
  • LinkedList底层为双向链表,非线程安全的,查询慢增删快;

   2.set集合的特征:无须不可重复;实现Collection接口;常见的子类有HashSet、TreeSet、LinkedHashSet;

  • TreeSet底层是一个TreeMap(红黑树  不太了解),元素不允许为null;非线程安全;
  • HashSet底层为一个hash表和红黑树,元素可为null;非线程安全的;
  • LinkedHashSet底层就是一个hash表和双向链表组成,父类为HashSet,元素可为null;非线程安全的;

   3.Map集合:键值对的形式存在;主要子类有HashMap、TreeMap、LinkedHashMap等;

  • HashMap底层为红黑树和散列表组成,取代了HashTable,可以允许键值均为null,hashTabe的键值均不能为null,hashMap为非线程安全的,hashTable为线程安全的,HashMap的初始长度为16;
  • linkedHashMap底层为红黑树加双向链表和散列表,初始长度为16,非同步的,有序插入;

散列表和红黑树:
散列表就是Hash表,根据不同的hash值挂载在数组中,如果hash值相同时,用value和数组链表的对象比对,相同则不添加,不同则添加;

红黑树:有2-3树演变而来。。。。。。。

没有心思看了,下次再写,明天总结一下线程。

 

转载于:https://www.cnblogs.com/lik99999/p/11198708.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值