J2SE基礎 10集合2

2021-06-23 02:44:06 字數 3459 閱讀 2092

2:列表(list)

特點:

(1):有序的(插入的順序有序),元素有索引值。
(2):允許重複。

set/get/listiterator/sublist

arraylist

特點:(1):底層陣列方式實現。
(2):元素是有序的。(是指新增進去的元素有序,不是指物件之間的順序)
(3):不是執行緒同步的。
(4):由於是用陣列實現,查詢比較快。

迴圈:

迭代器

for迴圈

雙向迭代器

linkedlist

特點:(1):底層機制鍊錶方式實現。
(2):元素是有序的。(是指新增進去的元素有序,不是指物件之間的順序)
(3):不是執行緒同步的。
(4):由於是用鍊錶實現,因此增刪改物件比較容易。查詢比較慢。

copyonwritearraylist

特點:(1):底層機制陣列方式實現。
(2):元素是有序的。(是指新增進去的元素有序,不是指物件之間的順序)
(3):它是執行緒同步的。
(4):由於是用陣列實現,因此查詢比較快。增刪改比較慢。

list中的sublist方法

sublist也會出現快速失敗異常。

解決方法:重新用sublist擷取的集合檢視構建乙個新的list即可。
list list = new arraylist();
list list2 = list.sublist(3,5);
list.removeall(list2);

list list = new arraylist();
list list2 = new arraylist(list.sublist(3,5));
list.removeall(list2);

stack(資料結構)

(1):有序的(插入的順序有序),元素有索引值。
(2):允許重複。
(3):資料先進後出。

3:對映(map)

特點:

(1):鍵值對的資料物件。鍵不能重複。(鍵重複的話,後面新增的覆蓋前面)
乙個鍵對應乙個值。

hashmap

(1):底層以雜湊演算法實現
(2):允許乙個null鍵,允許多個null值。
(3):無序
(4):不是執行緒同步。

linkedhashmap

(1):底層以鍊錶演算法實現

(2):允許乙個null鍵,允許多個null值。
(3):有序(新增的順序有序)
(4):不是執行緒同步。

存值:put(key,value);

取值: value = get(key)

迭代map

a:使用keyset(返回所有鍵的集合,迴圈鍵的集合,取出每乙個鍵,再通過鍵取值)。

b:使用values(返回所有值的集合),只能獲取值(值可以重複,所以不能通過值獲取鍵)

c:使用entryset(返回鍵值對的集合)。集合中的每乙個元素都是乙個map.entry實體物件。

4:佇列(queue)

特點:

(1):與stack一樣,佇列是一種資料結構。先進先出的特點。

新增:offer

刪除:remove

獲取佇列元素 poll

單向佇列:queue queue = new linkedlist();

雙向佇列:linkedlist queue = new linkedlist();

//這樣雙向佇列可以操作隊首與隊尾。

5:老的一些集合框架類

特點:

全部都是執行緒安全的。

vector

特點:(1):底層陣列方式實現。

(2):元素是有序的。(是指新增進去的元素有序,不是指物件之間的順序)

(3):是執行緒同步的。

(4):由於是用陣列實現,查詢比較快。

hashtable

(1):底層以雜湊演算法實現

(2):不允許null鍵,不允許null值。

(3):無序

(4):執行緒同步。

enumeration

老的迭代器。沒有提供remove元素的方法。(因為老集合都是執行緒安全的).

集合的工具類:

arrays:用於運算元組的工具類。對於陣列的排序,新增,查詢。

collections:用於操作集合的工具類。對於集合的排序,新增,查詢,比較等。

集合之間的相互轉換

陣列轉list

陣列轉set

list轉陣列

set轉陣列

list轉set

J2SE基礎 10集合2

2 列表 list 特點 1 有序的 插入的順序有序 元素有索引值。2 同意反覆。set get listiterator sublist arraylist 特點 1 底層陣列方式實現。2 元素是有序的。是指加入進去的元素有序,不是指物件之間的順序 3 不是執行緒同步的。4 因為是用陣列實現。查詢...

J2SE 物件導向

public static void main string args throws exception 資料型別 容量從小到大基本型別 byte short char int long float double boolean不能相互轉換 容量小的自動轉換為大的 容量大的轉換為小的時需加上強制轉換...

執行緒 建立 J2SE

建立執行緒的兩種方法 第一種,定義執行緒,實現 runnable介面 public class testthread1 class runner1 implements runnable start runner1和main thread交替執行。run runner1先執行,main thread...