在java中,對數據的操作很多都要用到集合。最近零星的看了一點集合的相關知識,這裏稍微梳理一下。基本上就是集合操作的四個常用類的一點總結。
首先,集合大致分爲兩個方向,一種是普通的集合類型,通過接口collection向下擴展,另一種是map接口下的鍵值對的集合類型。今天主要說的的四個類ArrayList和LinkedList是collection接口下List接口的兩個實現類。另外兩個HashMap和TreeMap則是Map接口的實現類。
首先,對於Collection,它的主要分支有兩個:List和Set。List是有序的可以重複的集合接口,而Set是無序的不可重複的集合接口。
ArrayList:
- 線程非同步
- 介紹:可變的數組,允許所有元素包括NULL
- 特點:可以根據索引位置對集合進行快速的訪問和遍歷,缺點是向指定位置插入和刪除對象很慢
- 應用:適合隨機查找和遍歷,不適合插入和刪除。
LinkList:
- 線程非同步
- 介紹:採用鏈表結構保存對象
- 特點:很便於向指定地點插入和刪除對象,缺點是隨機訪問集合中的對象效率很慢
- 應用:數據的動態插入和刪除,不適合隨機訪問和遍歷
@Test
public void test1()
{
List<String> list=new ArrayList<String>();
list.add("AK-47");
list.add("ACER");
list.add("ASUS");
list.set(2, "HP");//替換
list.add(2, "Dell");//插入
list.add("LENOVO");
list.indexOf("HP");//查找
Iterator<String> iterator =list.iterator();
while(iterator.hasNext())
{
System.out.println(iterator.next());
}
}
HashMap:
- 介紹:基於哈希表的Map接口實現,允許NULL
- 特點:實現了Map集合對添加刪除映射關係效率比較高,不能保證映射順序
- 應用:用於添加刪除映射關係
TreeMap:
- 介紹:實現Map和SortedMap接口,不允許NULL
- 特點:有一定的映射順序,但是添加刪除映射關係效率比HashMap差
- 應用:用於添加刪除映射關係
@Test
public void test2()
{
HashMap m=new HashMap();
m.put("001", "Acer");
m.put("002", "HP");
m.remove("002");
m.put("003", "LENOVO");
Set set=m.entrySet();
Iterator iterator=set.iterator();
while(iterator.hasNext())
{
Map.Entry mapentity= (Map.Entry) iterator.next();
System.out.println(mapentity.getKey()+":"+mapentity.getValue());
}
}
OK,集合就先寫到這裏。有什麼錯誤請指正