JAVA集合主要分为三种类型
List (列表):List的特征是其元素以 线性方式 存储,集合中可以存放重复对象。(线性表)
list接口主要实现类包括:
ArrayList():代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与删除元素的速度慢。访问速度快!!!
LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。
对于List的随机访问来说,就是只随机来检索位于特定位置的元素。
List 的 get(int index) 方法放回集合中由参数index指定的索引位置的对象,下标从“0” 开始。
所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value
键值对。例如:[ tom,1,c ];
所有的List中可以有相同的元素,例如Vector中可以有 [tom,koo,too,koo];
所有的List中可以有null元素,例如[ tom,null,1 ];
基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)
适合添加,删除操作;
Set (集) :是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。
Set接口主要实现了两个实现类:
HashSet:HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
TreeSet:TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现)
Query接口有一个实现类:LinkList
Map (映射) :以键值对的方式出现的
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null;
HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap