collection:
|--List:元素有序、可重复的集合,"动态“数组
|--ArrayList:作为List接口的主要实现类;线程不安全,效率高。底层使用Object[]存储
add(),remove(),removeAll(),contains(),
containsAll(),retainAll(),求交集,,equals(),hashCode(),toArray()将集合转化为数组,Arrays.adList(),
|--LinkedList:底层使用双向链表存储。对于频繁的插入、删除操作,使用此类效率比ArrayList高
|--Vector:作为List的古老实现类;线程安全,效率低。底层使用Object[]存储
|--Set:元素无序,不可重复的集合
|--HsahSet: 是set接口的主要实现类;线程不安全;可以存储null值;底层是一个Object[]和链表
|--LinkedHsahSet:HashSet的子类;遍历其内部数据时,可以按照添加的顺序遍历
优点:对于频繁的便利操作,效率要高于HashSet
|--SortedSet:
|--TreeSet:可以按照添加对象的指定属性进行排序。(添加数据为同一个类的对象)
排序:自然排序(实现Comparable接口)、定制排序(Comparator)
自然排序中,比较两个对象是否相同的标准为:compareTo()返回0,不再是equals()。
Map:双列数据,保存具有映射关系”key-value对“的集合。
|--HashMap:作为Map的主要实现类;线程不安全,效率高;存储null的key-value,底层结构是:数组+链表+红黑树
|--LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。
原因:在原有的HashMap底层结构的基础上,添加了一对指针,指向前一个元素和后一个元素。
对于频繁的遍历操作,此类指向效率高于HsahMap。
|--TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序和定制排序
|--Hashtable:作为古老的实现类;线程安全,效率低;不能存储null的key-value
|--Properties:常用来处理配置文件,key和value都是String类型
Map结构的理解:
Map中的key:无序的、不可重复的,使用set存储key。--->key所在的类要重写equals()和hashCode()(HsahMap为例)
Map中的value:无序的、可重复的,使用Collection存储value。--->value所在类要重写equals()
一个键值对:key-value构成一个Entry对象
Map中的entry:无序的、不可重复的,使用set存储所有的entry
无序性:不等于随机性。存储的数据在底层数组中并非按照数组的索引的顺序添加,而是根据数据的哈希值决定
不可重复性:保证添加的元素按照equals()判断时,不能返回true,即:相同的元素只能添加一个
Map常用方法:put(),,putAll(),,remove(),,clear(),,get(),,containsKey(),,containsValue(),,size(),,isEmpty(),,equals(),,keySet(),,values(),,entrySet()
Conllection接口的常用方法:add(Object obj),,addAll(Collection coll),,size(),,isEmpty();,,clear();,,contains(Object obj),,containsAll(Collection coll),,remove(Object obj),,
removeAll(Collection coll),,retainsAll(Collection coll),,equals(Object obj);hashCode(),,toArray(),,iterator();
Conllections工具类:
**常用方法:
reverse(List):反转List元素的顺序,,
shuffle(List):对List集合元素进行随机排序,,
sort(List):根据元素的自然顺序对指定List集合元素安升序排序,,
sort(List,Comparator):根据指定的Cmparator产生的顺序对List集合元素进行排序,,
swap(List,int,int):将指定list集合中的i处元素和j处元素进行交换。。
max(Collection):返回集合中的最大元素,根据自然排序,,
max(Collection,Comparator):根据指定顺序返回集合中的最大元素,,
frequency(Collectio,Object):返回集合中指定元素的出现次数,,
copy(List dest,List src):将src中的集合内容复制到dest中,,
replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值。
**同步控制:将指定的集合包装成线程同步(线程安全)的集合。
synchronizedList(List),,synchronizedMap(Map),,synchronizedSet(Set).......
Arrays工具类
asList(T… a):返回由指定数组支持的固定大小的列表
toString(int[] a):返回指定数组的内容的字符串表示形式
sort(int[] a):按照数字顺序排列指定的数组
binarySearch(Object[] a, Object key):使用二叉搜索算法搜索指定对象的指定数组
copyOfRange(int[] original, int from, int to):将指定数组的指定范围复制到新数组中
fill(Object[] a, Object val):将指定的对象引用分配给指定的对象数组的每个元素