如何理解List,Map和Set集合

List集合

List集合概述

有序集合(也称序列)用户可以精确控制列表的每一个元素的位置插入,用户可以通过整数索引访问元素,并搜索列表中的元素
与set集合不同,列表通常允许重复的元素

List集合的特点

有序:存储和取出元素顺序一致
可重复:存储的元素可以重复

List集合实现类特点

ArrayList:查询快,增删慢的一种数组
LinkedList:查询慢,增删快的一种链表

ArrayList扩容机制

ArrayList数组首先对传进来的初始化参数initalCapcity(初始容量)进行判断,参数如果为0,则初始化为一个空数组
如果不等于0,则初始化一个容量为10的数组

扩容时机:

当数组大小大于初始容量的时候,就会进行扩容,扩容为原来的1.5倍

扩容方式:

会将原数组拷贝到一个新数组里,修改原数组指向新数组,原数组被抛弃,会被GC回收

Set集合:

 TreeSet集合特点:

元素有序,这里的顺序不是指存储和取出的顺序,而是按照一定的规则进行排序,具体方法取决于构造方法
TreeSet(); 根据元素的自然派进行排序
TreeSet(Comparator comparator); 根据指定得比较器进行排序
注:TreeSet要遍历时候必须在实现类实现Comparable接口,重写ComparaTo方法

Map集合

特点:

	无序、以键值对的形式添加元素,键不能重复,值可以重复
              	它没有继承Collection接口

遍历

	         1. 先取出保存所有键的Set,再遍历Set即可(2种)
	         2. 先取出保存所有Entry的Set,再遍历此Set即可

区别

	HashMap与Hashtable之间的区别
    HashMap非同步 线程不安全
    Hashtable同步 线程安全  同步既排队
 	HashMap只允许一条记录的键为NULL
 	TreeMap不允许键为NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值