LIst、Map、Set

List(列表)有序可重复
 
  list有ArrayList、LinkedList
  其中ArrayList实现了可变大小的数组,它允许所有元素,包括null
  和LinkedList一样,ArrayList也是非同步的
  由数组实现的List,,允许对元素进行快速随机访问,但是向List中插入与移除元素的速度很慢。
  ListInterator只应该由后向前遍历ArrayList,而不是用来插入和移除元素

 Vector非常类似ArrayList,但是Vector是同步的。
 
  LinkedList实现了List接口,允许null元素。
  注意LinkedList没有同步方法。如果多个线程同事访问一个List,则必须自己实心访问同步。
 
  ArrayList和LinkedList的区别:
  1.ArrayList实现了基于动态数组的数据结构。LinkedList基于链表的数据结构
  2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针
  3.对于新增和删除add和remove,LinkedList比较占优势,因为ArrayList要移动数据
 


Set(集)无序且不可重复

Set具有与Colletion完全一样的接口,因此没有任何额外的功能
实际上set就是colletion,只是行为不同
加入set的元素必须定义equals()方法
以确保对象的唯一性
HashSet为快速查找设计的Set。存入hashSet 的对象必须定义hashcode()

Map (映射)

Map没有继承Colletion,Map提供key和value的映射 ,你可以通过“键”查找 ”值“。一个Map不同包含相同的key,每个key只能映射一个value Map接口提供3种结合的视图,Map的内容可以被当做一组key集合,一组value集合或者一组key-value映射 HashTable类继承Map接口实现一个key-value映射的哈希表。任何非空(non-null)的对象都可以作为key或者value hashTable是同步的

HashMap类 HashMap和HashTable类似,也是基于散列表的实现 不同之处是HashMap是非同步的,并且允许null 但是将HashMap视为colletion时,其迭代子操作 实际开销和aHAshMap的容量成正比 Treemap类的特点在于你得到的解雇欧式经过排序的

 HashMap线程不安全的 HashTable是线程安全的

http://ifeve.com/concurrenthashmap/

总结很重要哦 方法得当,坚持会有奇迹哦
原文地址:https://www.cnblogs.com/sunyuhuan/p/7204537.html