Java基礎 Java重點基礎之集合框架(四)

2021-07-08 15:58:37 字數 3069 閱讀 2094

一,map集合概述和特點

b:map介面和collection介面的不同

二,map集合的功能概述

b:刪除功能

c:判斷功能

d:獲取功能

e:長度功能

三,map集合的遍歷之鍵找值

b:案例演示

四,map集合的遍歷之鍵值對物件找鍵和值

hashmaphm = new hashmap<>();

hm.put("張三", 23);

hm.put("李四", 24);

hm.put("王五", 25);

hm.put("趙六", 26);

/*set> entryset = hm.entryset(); //獲取所有的鍵值物件的集合

iterator> it = entryset.iterator();//獲取迭代器

while(it.hasnext()) */

for(entryen : hm.entryset())

五,hashmap集合鍵是student值是string的案例

/*

* * a:案例演示

* hashmap集合鍵是student值是string的案例

* 鍵是學生物件,代表每乙個學生

* 值是字串物件,代表學生歸屬地

*/public static void main(string args)

六,linkedhashmap的概述和使用

七,treemap集合鍵是student值是string的案例

treemaptm = new treemap<>(new comparator() 

});tm.put(new student("張三", 23), "北京");

tm.put(new student("李四", 13), "上海");

tm.put(new student("趙六", 43), "深圳");

tm.put(new student("王五", 33), "廣州");

system.out.println(tm);

八,統計字串中每個字元出現的次數

string str = "aaaabbbcccccccccc"; 

char arr = str.tochararray(); //將字串轉換成字元陣列

hashmaphm = new hashmap<>(); //建立雙列集合儲存鍵和值

for(char c : arr) else */

!hm.containskey(c) ? 1 : hm.get(c) + 1);

integer i = !hm.containskey(c) ? hm.put(c, 1) : hm.put(c, hm.get(c) + 1);

}for (character key : hm.keyset())

九,集合巢狀之hashmap巢狀hashmap

/**

* * a:案例演示

* 集合巢狀之hashmap巢狀hashmap

* * 需求:

* 雙元課堂有很多基礎班

* 第88期基礎班定義成乙個雙列集合,鍵是學生物件,值是學生的歸屬地

* 第99期基礎班定義成乙個雙列集合,鍵是學生物件,值是學生的歸屬地

* * 無論88期還是99期都是班級物件,所以為了便於統一管理,把這些班級物件新增到雙元課堂集合中

*/public static void main(string args)

} }

十,hashmap和hashtable的區別(面試題)

十一,collections工具類的概述和常見方法講解

b:collections成員方法

public static void sort(listlist)

public static int binarysearch(list<?> list,t key)

public static t max(collection<?> coll)

public static void reverse(list<?> list)

public static void shuffle(list<?> list)

十二,總結

collection

*  list(訪問有序,有索引,可以重複)

*    arraylist

*     底層是陣列實現的,執行緒不安全,查詢和修改快,增和刪比較慢

*    linkedlist

*     底層是鍊錶實現的,執行緒不安全,增和刪比較快,查詢和修改比較慢

*    vector

*     底層是陣列實現的,執行緒安全的,無論增刪改查都慢

*    如果查詢和修改多,用arraylist

*    如果增和刪多,用linkedlist

*    如果都多,用arraylist

*   set(訪問無序,無索引,不可以重複)

*    hashset

*     底層是雜湊演算法實現

*     linkedhashset

*      底層是鍊錶實現,但是也是可以保證元素唯一,和hashset原理一樣

*    treeset

*     底層是二叉樹演算法實現

*    一般在開發的時候不需要對儲存的元素排序,所以在開發的時候大多用hashset,hashset的效率比較高

*    treeset在面試的時候比較多,問你有幾種排序方式,和幾種排序方式的區別

* map

*   hashmap

*    底層是雜湊演算法,針對鍵

*    linkedhashmap

*     底層是鍊錶,針對鍵

*   treemap

*    底層是二叉樹演算法,針對鍵

*   開發中用hashmap比較多

Java基礎 Java重點基礎之IO流(三)

一,序列流 2.使用方式 fileinputstream fis1 new fileinputstream a.txt 建立輸入流物件,關聯a.txt fileinputstream fis2 new fileinputstream b.txt 建立輸入流物件,關聯b.txt sequenceinp...

Java基礎 Java重點基礎之多執行緒(一)

一,多執行緒的引入 2.多執行緒的應用場景 b jvm的啟動是多執行緒的嗎 五,多執行緒程式實現的方式2 六,實現runnable的原理 七,兩種方式的區別 掌握 繼承thread 實現runnable介面 八,匿名內部類實現執行緒的兩種方式 new thread 繼承這個類 public void...

Java基礎重點回顧

執行緒 執行緒是程式執行的一條路徑,乙個程序中可以包含多條執行緒 多執行緒併發執行可以提高程式的效率,可以同時完成多項工作 多執行緒實現的兩種方式 一種是繼承thread public class demo2 thread class mythread extends thread 另一種是實現ru...