java的集合

###图 JAVA集合

有图可以看出JAVA集合可以分为list、set、map

LIST

Collection<--List<--Vector

Collection<--List<--ArrayList

Collection<--List<--LinkedList

List为有序的集合

ArrayList 是个数组实现的具有查找的优势可以直接指定坐标 和LinkedList一样,ArrayList也是非同步的(unsynchronized)

Iterator定义了个变量内部实际是数据下标移动的

LinkedList是个链表的实现有删除和增加的优势

注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List: List list = Collections.synchronizedList(new LinkedList(…));

Vector是个线程安全的集合

当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常

###SET Collection<--Set<--HashSet

Collection<--Set<--HashSet<--LinkedHashSet

Collection<--Set<--SortedSet<--TreeSet

list里面的数据是具有唯一性的

set的实现是依据map的key实现的

HashSet允许有个NULL值存在 HashSet是HashMap实现的 这里面是个拉链

LinkedHashSet基于LinkedHashMap实现的 存的是一个拉链但是又维护了一个链表

TreeSet是TreeHashMap实现的底层是一个红黑树

MAP

HashMap

HashTable 线程安全的

LinkedHashMap

TreeHashMap

转载于:https://my.oschina.net/findurl/blog/1489857

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值