java集合
集合是用來存儲數據的,以前有了數組為什么還要集合呢,因為數組必須要聲明長度,集合不需要,更加靈活,
集合是在java.util包中的,也有一部分在java.util.concurrent 這里面是一些支持并發(fā)編程的集合類
原文地址: https://itzmn.github.io/2018/12/05/java%E9%9B%86%E5%90%88%E6%80%BB%E7%BA%B2/
概況
java的集合分為兩種,一種是實現了map接口的key-value形式的,每個位置存放一對數據。一種是實現了Collection接口的每個位置存放一個數據,
具體實現
Collection
Collection是繼承了Iterable接口的
我們看一下Iterable接口是干嘛的,接口的簡介說實現此接口,可以讓其成為可以使用for-each的目標,也就是說實現這個接口的集合,都可以被遍歷。
// 這是接口內部的方法,返回類型元素的迭代器
Iterator<T> iterator();
Collection接口下有三個子接口
- List
- ArrayList
- LinkedList
- Set
- HashSet
- LinkedHashSet
- TreeSet
- Queue
- Deque
- LinkedList
- Deque
現在對每一種進行簡單介紹
List 是一個有序,可重復的集合。添加數據,獲取數據也是按照添加數據的順序
- ArrayList
ArrayList是基于數組實現的List類,它封裝了一個動態(tài)的增長的、允許再分配的Object[]數組。 - LinkedList
是基于鏈表實現的,他還實現了Deque接口,可以進行雙端隊列操作
Set 是一個不可有重復的集合
- HashSet
這是一個無序的集合, - LinkedHashSet
這是一個有序的集合,底層按照數據添加順序維護
Queue是一個隊列,先入先出
- Deque
也是一個可以進行雙端隊列操作的- LinkedList
- ArrayQueue
Map
map用于保存一個映射關系的數據的,存儲是key-value形式的數據。map不允許存儲key相同的數據
- HashMap
不能保證數據的順序性, - HashTable
- SortMap
- TreeMap
基于紅黑樹實現,可以根據key對數據進行排序
- TreeMap
下面我們會對這些集合類,進行進一步探討