1.Map中我們主要講兩個接口 HashMap 與 LinkedHashMap
(1)其中LinkedHashMap是有序的 怎麼存怎麼取出來
我們講一下Map的增刪改查功能:
/*
* Map集合的添加
*/
Map<String, String> map = new HashMap<String, String>();
map.put("星期一", "Monday");
map.put("星期六", "Sunday");
System.out.println(map);
/*
* 通過建 獲取值
*/
String string = map.get("星期六");
System.out.println(string);
/*
* 通過建 修改值
*/
map.put("星期一", "Mon");
System.out.println(map);
/*
* 通過建 刪除值
*/
String remove = map.remove("星期六");
System.out.println(remove);
System.out.println(map);
}
以上就是Map的增刪改查方法
2.Map的遍歷
1.第一種:通過keySet()方法獲取集合的所有建 存儲在Set<>集合中
(1)增強for
(2)迭代器
Map<String, Character> map =new LinkedHashMap<String, Character>();
map.put("一", '1');
map.put("二", '2');
map.put("三", '3');
map.put("四", '4');
map.put("五", '5');
Set<String> set = map.keySet();
(1)增強for
for (String string : set) {
System.out.println(string+" "+map.get(string));
}
(2)迭代器
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
String str=iterator.next();
Integer integer = map.get(str);
System.out.println(str+" "+integer);
}
第二種 通過 Map.Entry<K,V> 在Map類設計時,提供了一個嵌套接口:Entry。 Entry將鍵值對的對應關系封裝成了對象。
getKey()方法:獲取Entry對象中的鍵
getValue()方法:獲取Entry對象中的值
entrySet()方法:用於返回Map集合中所有的鍵值對(Entry)對象,以Set集合形式返回。
(1)增強for
Set<Entry<String, Character>> entries = map.entrySet();
for (Entry<String, Character> entry : entries) {
String str = entry.getKey();
Character character = entry.getValue();
System.out.println(str+" "+character);
}
(2)迭代器
Set<Map.Entry<String, String>> entries = map.entrySet();
Iterator<Map.Entry<String, String>> iterator = entries.iterator();
while(iterator.hasNext()){
Entry<String, String> entry = iterator.next();
System.out.println(entry.getKey()+" "+entry.getValue());
}
3.Map之嵌套
我們在嵌套Map中傳入引用類型Person 這裡記得要重寫equlas與HashCode方法
private static void fun6() {
Map<Person, String> map1 = new LinkedHashMap<Person, String>();
map1.put(new Person("黃曉明", 40), "北京");
map1.put(new Person("AnlayBay", 36), "北京");
Map<Person, String> map2 = new LinkedHashMap<>();
map2.put(new Person("宋江",40), "梁山");
map2.put(new Person("林沖",40), "豹子頭");
Map<Map<Person,String>, String> map = new LinkedHashMap<>();
map.put(map1, "第一組");
map.put(map2, "第二組");
for (Entry<Map<Person,String>, String> zhu: map.entrySet()) {
String value = zhu.getValue();
for (Entry<Person, String> entry : zhu.getKey().entrySet()) {
Person key = entry.getKey();
String value2 = entry.getValue();
System.out.println(value+".."+key+".."+value2);
}
}
}
/**
* 迭代器遍歷
*/
private static void fun5() {
Map<Person, String> map1 = new LinkedHashMap<Person, String>();
map1.put(new Person("黃曉明", 40), "北京");
map1.put(new Person("AnlayBay", 36), "北京");
Map<Person, String> map2 = new LinkedHashMap<>();
map2.put(new Person("宋江",40), "梁山");
map2.put(new Person("林沖",40), "豹子頭");
Map<Map<Person,String>, String> map = new LinkedHashMap<>();
map.put(map1, "第一組");
map.put(map2, "第二組");
Set<Map<Person,String>> set = map.keySet();
Iterator<Map<Person, String>> iterator = set.iterator();
while(iterator.hasNext()){
Map<Person, String> next = iterator.next();
String string = map.get(next);
Set<Person> persons = next.keySet();
Iterator<Person> iterator2 = persons.iterator();
while(iterator2.hasNext()){
Person next2 = iterator2.next();
String string2 = next.get(next2);
System.out.println(string2+" "+next2+" "+string);
}
}
}
這裡我補充一個集合的工具類
Collections
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("a");
arrayList.add("s");
arrayList.add("g");
arrayList.add("d");
//排序
Collections.sort(arrayList);
System.out.println(arrayList);
//翻轉
Collections.reverse(arrayList);
System.out.println(arrayList);
//打亂順序
Collections.shuffle(arrayList);
System.out.println(arrayList);
//二分查找
List<Integer> integers = new ArrayList<>();
Collections.addAll(integers, 1,2,3,4,5,7,8);
System.out.println(integers);
int binarySearch = Collections.binarySearch(integers, 6);
System.out.println(binarySearch);
//打亂shuffle
Collections.shuffle(integers);
System.out.println(integers);
}
今天大部分用代碼展示了,不多做介紹,集合這一模塊 無非就是增刪改查 還有遍歷,我在學習的過程中 基本每一個集合的方法我都會敲十遍加深印象