最简单集合详解!

集合就是可以存所有类型数据的一个容器
1.了解那些集合?
答:Connection(5个实现类)和Map集合(3个实现类)
只需要知道:ArrayList【底层数组】、LinkedList【底层双向链表】、TreeSet【Comparable+Compartor】、HashMap【List数组+单向链表】集合就算是ojbk了!
Collectinon
	---List【接口】
		---ArrayList
		---LinkedList
		---Vector
	---Set【接口】
		---HashSet
		---TreeSet
Map【接口】
	---HashMap
	---Hashtable
		---Properties
	----TreeMap
2.解释Collection下5个实现类
1. ArrayList【底层是数组,数组不了解的跳过...这个】
特征:查询快:因为有下标,可以通过【首地址+偏移量】直接找到。
	  增删慢:因为插入需要移动元素。
	  扩容机制:jdk1.7之后使用延迟初始化,在添加第一个元素的时候初始化容量10,
	  		   当存满的时候,创建一个容量1.5倍的新数组,将老数组复制进去。
	  		   
2. LinkedList:【底层是双向链表】
特征:查询慢:在空间中不连续,需要通过下标逐个查找。像排队一样,每个人只认识前
	  后的人,只能一个一个找。
	  增删快:不需要移动元素,只需要指向插入元素下标。像插队一样,直接插进去就
	  行,不过前边换了个人。
	  
3. Vector:一个线程安全的ArrayList!

4. HashSet:就是HashMap中的key,value值是空的。

5. TreeSet:会默认升序排序。如果自定义的类,需要实现Comparable接口中
			 的comparTo()或者自定义一个比较器实现Compartor接口中的compare();
3.map下的3个实现类
1. HashMap【底层hash表,list数组+单向链表】
1.7之前:list数组+单向链表
1.8之后:list数组+单向链表
扩容机制:链表长度到8 && 数组长度>64,转换成红黑树;链表长度小于6,
		 在转为链表)
初始化容量:默认是16,可以自定义,但是一定是2的幂。写2->4,写5->8.
		   就是怎么智能,想了解可以看源码。

2. Hashtable:线程安全的HashMap。
   Properties:只能存String类型的Hashtable

3. TreeMap:key就是TreeSet。不用管value!
最后送上两张图,没事可以看看

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值