一、概述
Hello,各位觀眾老爺,時隔一周小的繼續來跟大家分享學習Java知識了,在之前我們一起了解過了集合中的一種ArrayList,沒有看過的觀眾老爺請點擊鏈接先了解一下淺談集合之ArrayList_Michelhjx的博客-CSDN博客
現在我們稍微回顧一下集合類的特點 :
提供一種存盤空間可變的存盤模型,存盤的資料容量可以隨時發生改變,
這里我們先來看一下集合的體系結構,了解一下集合需要學習哪些東西:

接下來我們開始逐步學習集合,
二、Collection
2.1概述
- 是單例集合的頂層介面,它表示一組物件,這些物件也稱為Collection的元素
- JDK 不提供此介面的任何直接實作,它提供更具體的子介面(如Set和List)實作
創建Collection集合的物件:
多型的方式
具體的實作類ArrayList
2.2Collection 集合常用方法

具體使用我們有代碼演示一下:
public class Test {
public static void main(String[] args) {
Collection collection = new ArrayList();
//添加元素
collection.add(1);
collection.add(2);
collection.add(3);
System.out.println(collection);
//洗掉指定元素
collection.remove(3);
//判斷集合中是否存在指定的元素
collection.contains(4);
//判斷集合是否為空
System.out.println(collection.isEmpty());
//集合的長度,也就是集合中元素的個數
System.out.println(collection.size());
//清空集合中的元素
collection.clear();
System.out.println(collection.isEmpty());//用判定是否為空來檢驗是否清空集合
}
}
我們在控制臺輸出列印:

這里我們可以看到,在使用了clear()方法后,我們再次判斷集合是否為空的時候,這里列印的值是true,因此我們可以檢驗出clear()方法確實已經清空了集合,
2.3 Iterator迭代器
什么是迭代器? 這是集合的一種專有的遍歷方式,
常用方法:
具體使用我們用代碼演示一下:
public class Test {
public static void main(String[] args) {
Collection collection = new ArrayList();
collection.add(1);
collection.add(2);
collection.add(3);
Iterator iterator = collection.iterator();
while (iterator.hasNext()){
System.out.println( iterator.next());
}
}
}
控制臺輸出列印:

2.4List
概述:有序集合(也稱為序列),用戶可以精確控制串列中每個元素的插入位置,用戶可以通過整數索引訪問元素,并搜索串列中的元素,可以存入重復的元素,
特點:
- 有序:存盤和取出的元素順序一致
-
可重復:存盤的元素可以重復
常用方法:

具體使用我們用代碼演示一下:
public class Test1 {
public static void main(String[] args) {
List list = new ArrayList();
//回圈添加元素
for (int i = 1; i <5 ; i++) {
list.add(i);
}
//往指定位置添加元素
list.add(2,6);
//洗掉指定索引值的元素
list.remove(2);
//修改指定索引值的元素
list.set(2,6);
//獲得指定索引值的元素
System.out.println(list.get(2));
System.out.println("------");
//遍歷集合
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
}
}
控制臺輸出;

ListIterator串列迭代器(List專用)
常用方法:

具體使用我們用代碼演示一下:
public class Test1 {
public static void main(String[] args) {
List list = new ArrayList();
//回圈添加元素
for (int i = 0; i <5 ; i++) {
list.add(i);
}
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()){
//正序遍歷
System.out.println(listIterator.next());
}
System.out.println("----------------");
while (listIterator.hasPrevious()){
System.out.println(listIterator.previous());
}
}
}
運行結果:

List集合常用實作類:
ArrayList:
ArrayList: 底層是陣列,查詢快,增刪慢
LinkedList
LinkedList: 底層是鏈表,查詢慢,增刪快
2.5 Set
集合特點:
不包含重復的元素
沒有帶索引的方法,所以不能使用普通for回圈遍歷
哈希值概念:
是JDK根據物件的地址或者字串或者數字算出來的int型別的數值
實作類
1.HashSet
特點:

2. TreeSet
特點:

TreeSet排序:
public class Test2 {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<Integer>();
//自然排序
treeSet.add(6);
treeSet.add(5);
treeSet.add(7);
treeSet.add(3);
treeSet.add(1);
for (Integer integer : treeSet) {
System.out.println(integer+" ");
}
System.out.println("-----------");
//比較器排序
TreeSet<Integer> treeSet1 = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer i1, Integer i2) {
int num = i1-i2;
return num;
}
});
treeSet1.add(6);
treeSet1.add(5);
treeSet1.add(7);
treeSet1.add(3);
treeSet1.add(1);
for (Integer integer : treeSet1) {
System.out.println(integer);
}
}
}
運行結果:

三、Map
3.1 定義
map集合中元素是成對存在的,每個元素由鍵和值組成,可以通過鍵找到值,但是鍵具有唯一性,
3.2常用方法
3.3 Map集合遍歷
直接上案例!
public class Test3 {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<Integer, String>();
map.put(1,"張三");
map.put(2,"李四");
map.put(3,"王五");
map.put(4,"趙六");
//方法一
//1、通過keySet()方法回傳一個鍵的集合
//2、遍歷這個集合,依次用get()方法獲取值
Set<Integer> integers = map.keySet();
for (Integer integer : integers) {
System.out.println(integer+" "+map.get(integer));
}
System.out.println("-----------------");
//方法二
//1、通過entrySet()方法獲取一個鍵值對物件
//2、用getKey()和geyValue()方法分別獲取值和鍵
Set<Map.Entry<Integer, String>> entries = map.entrySet();
for (Map.Entry<Integer, String> entry : entries) {
System.out.println(entry.getKey()+" "+entry.getValue());
}
}
}
運行結果:

四、Collections工具類
概述:
常用方法:

好了,各位觀眾老爺,今天的分享學習就結束了!ByeBye~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/350899.html
標籤:java
