01.集合(map概述)
我感覺就是c#中的字典dictionary。
map集合的基本特點:
該集合儲存鍵值對,是一對一對往裡存,而且要保證鍵的唯一性。
新增:put(key,value)
putall()
刪除:clear();
remove(object obj);按鍵值刪除
判斷:containskey(object obj)
containsvalue(object obj)
isempty()
獲取:get(object obj)
size()
values();返回的是collection
entryset()
keyset()
02.集合(map子類物件特點)
map:
hashtable:底層是hash表資料結構,不可以存入null值和null鍵。該集合是執行緒同步的。jdk1.0.效率低。
hashmap:底層是hash表資料結構,允許使用null鍵和null值,該集合是不同步的。jkd1.2.效率高。
treemap:底層是二叉樹資料結構,執行緒不同步,可以用於給map集合中的鍵進行排序。和set很像,其實set底層就是使用了map集合。
03.集合(map共性方法)
04.集合(map-keyset)
map集合的兩種取出方式:
第一種keyset:將map中所有的鍵存入set集合,因為set具備迭代器,所有可以迭代方式取出所有的鍵,獲取每乙個鍵對應的值。
mapmap=new map();
map.put("02","zhangsan2");
map.put("03","zhangsan3");
map.put("04","zhangsan4");
map.put("05","zhangsan5");
setkeyset=map.keyset();
iteratorit=keyset.iterator();
while(it.hasnext())
map集合的取出原理:將map集合轉成set集合,再通過迭代器取出。
05.集合(map-entryset)
第二種entryset:
set> entryset:將map集合中的對映關係存入到set集合中,而這個關係的資料型別就是:map.entry。
set> entryset=map.entryset();
iterator> it=entryset.iterator();
while(it.hasnext())
map.entry其實entry也是乙個介面,它是map介面中的乙個內部介面。
inte***ce map
}06.集合(map練習)
以後建立類,這個類如果有多個物件且還有可能排序時,一定要實現comparable介面,覆蓋compareto();hashcode();equals();三個方法。
07.集合(treemap練習)
需求:對學生物件的年齡進行排序。
因為資料是以鍵值對形式存在的,所以使用可以排序的map集合,treemap
08.集合(treemap練習--字母出現次數)
通過結果發現,每乙個字母都有對應次數,說明字母和次數之間都有對映關係。
注意了:當發現有對映關係時,就要先想map集合。
思路:1.將字串轉換成字元陣列,因為要對每乙個字母進行操作
2.定義乙個map集合,因為列印結果的字母有序,所以使用treemap集合
3.遍歷字元陣列
將每乙個字母作為鍵去查map集合
如果返回nulll,將該字母和1存到map集合
如果返回不是null,說明該字母在map集合已經存在並有對應次數,那麼就獲取該次數進行自增,然後將該字母和自增後的次數存入到map集合,覆蓋原來鍵所對應的值
4.將map集合的資料變成指定的字串形式返回。
09.集合(map擴充套件)
map集合被使用是因為具備對映關係。
hashmaphm0=new hashmap();
hashmap> hm1=new hashmap>();
Java集合框架 三 之集合輸出
在之前進行集合輸出的時候都利用了tostring 或者利用了list介面中的get 方法。這些都不是集合的標準輸出。如果從標準上來講,集合輸出一共有四種手段 iterator listiterator enumeration foreach,接下來就詳細講述一下這幾種方法 在jdk1.5之前,在co...
java集合框架
集合框架包括集合與對映 collection and map 以及它們的子類 容器類 1 list 元素有先後次序的集合,元素有index位置,元素可以重複,繼承自collection介面,實現類 arraylist,vector,linkedlist 2 set 元素無續,不能重複新增,是數學意義...
java集合框架
框架 為了解決某一特定的問題,預先設計好的一系列具有繼承或實現關係的類的介面。集合裡的三大類 list直接繼承collection 特點 線性,有序 arraylist底層的實現是陣列 使用範圍 當某一陣列在實際應用中大量使用查詢和新增功能的時候用arraylist linkedlist底層的實現是...