JAVA容器

容器就是集合
Collection 接口:
java中没直接继承Collection的类,只提供了两个实现这个几口的子接口list和set;

List接口:
有索引
可重复
有序性
备注:方便查询

Set接口:
无索引
唯一性(不可重复,存入元素自动去重)
无序性
备注:方便增删

List和Set的区别:
1 Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。
2 List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。

Map:
存储元素为建筑队的形式:K-V

ArrayList:
实现List接口
可重复
有序性
查询效率高
数组大小可变
性能更好
非同步(多线程不可用)

HashSet:
无索引
唯一性(不可重复,存入元素自动去重)
无序性
允许有一个元素值为null

在这里插入图片描述
链表:连接不同的节点,每个数据都是一个节点(链表方便增删);
单向链表:关注表头
链表头:左边存的是这个节点的数据,右边存的是下一个节点的地址(引用,指针)
双向链表:表中间是本节点数据,左边存上一个节点的地址,右边存下一个节点地址.

		单向链表:只有一个下一个节点的指针
		优点:单向链表增加删除节点简单。遍历时候不会死循环;
		缺点:单向链表,只能从头到尾遍历,从头到尾遍历,类似瀑布模型,只能前进不能后退,只能找到它下一个节点
		
		双向链表:有两个指针,一个指向前一个节点,一个后一个节点
		优点:可以找到前驱和后继,可进可退;
		缺点:增加删除节点复杂,需要多分配一个指针存储空间。
		适用于需要双向查找节点值的情况。

哈希表:在这里插入图片描述

LinkedHashSet:
具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。

TreeSet:
该类实现了Set接口,可以实现排序等功能
HashMap:
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。

遍历的三种方式:普通for 增强for 迭代器.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值