Java学习打卡第八天——[Collection终结之HashMap,Collections的简介和使用]
今天已經是學習集合的第三天;
【1】第一天學習了Collection集合的List,ArrayList和LinkedList的常用方法和基礎規則,
ArrayList特點總結:
1、ArrayList底層是數組,所以在獲取元素時比較方便,屬于List分支下的一種,允許集合中有相同的元素
2、LinkedList底層是鏈表,所有具有鏈表的特性在獲取首元素,最有元素,插入元素,刪除元素時比較方便,屬于List分支下的一種
第一天學習集合的鏈接:
https://blog.csdn.net/weixin_44606952/article/details/122408384?spm=1001.2014.3001.5501
【2】第二天學習的是Collection集合的Set,TreeSet,和Generic(泛型),
1、Set和HashSet底層都是Hash,HashSet 基于 HashMap 來實現的,是一個不允許有重復元素的集合
2、HashSet 允許有 null 值。
3、HashSet 是無序的,即不會記錄插入的順序。
4、HashSet 不是線程安全的, 如果多個線程嘗試同時修改 HashSet,則最終結果是不確定的。
https://blog.csdn.net/weixin_44606952/article/details/122413151?spm=1001.2014.3001.5501
【3】最后一天學習的是Collection集合的Map集合和Collections的使用
HashMap的特性簡介
1、HashMap 是一個散列表,它存儲的內容是鍵值對(key-value)映射。
2、HashMap 實現了== Map 接口,根據鍵的 HashCode 值存儲數據,具有很快的訪問速度,最多允許一條記錄的鍵為 null,不支持線程同步。==
3、HashMap 是無序的,即不會記錄插入的順序。
4、HashMap 繼承于AbstractMap,實現了 Map、Cloneable、java.io.Serializable 接口。
Hash的常用功能:
基本功能在創建Map集合之后直接掉方法使用就可以,這里主要介紹一下HashMap的遍歷方法
HashMap的遍歷方法一共有兩種:
第一種鍵找值的方法遍歷:
1、使用HashMap的keySet()方法獲取所有的鍵(key),放到一個集合中
2、遍歷鍵的集合,獲取每一個key
3、根據key獲取每一個value(值),使用的是Map的get()
使用示例01:
遍歷方法二:
直接看圖片畫黃色部分,解釋的很清楚;
使用示例:
下面是幾個使用集合的案例以供學習:
案例01:
Student類的完整代碼:
測試類:
import java.util.HashMap; import java.util.Map; import java.util.Set;public class MapDemo {public static void main(String[] args) {Map<String,Student> map = new HashMap<String,Student>();Student s1 = new Student("林青霞",22);Student s2 = new Student("張曼玉",23);Student s3 = new Student("王祖賢",24);Student s4 = new Student("朱茵",25);map.put("it001",s1);map.put("it002",s2);map.put("it003",s3);map.put("it004",s4);//遍歷集合方法一//鍵值對對象找鍵和值//使用map.entrySet()方法得到鍵值對,然后利用get方法得到鍵和值Set<Map.Entry<String,Student>> mp = map.entrySet();for (Map.Entry<String,Student> me : mp){String id = me.getKey();Student s = me.getValue();System.out.println(id+","+s.getName()+","+s.getAge());}System.out.println("-----------");//遍歷集合方法二//鍵找值//先使用Set集合得到所有鍵的集合在利用map的get方法得到所有的值Set<String> set = map.keySet();for (String s : set){Student stu = map.get(s);System.out.println(s+","+stu.getName()+","+stu.getAge());}} }綜合案例02:
案例03:
案例提示:
關鍵部分在于把字符串正確添加到集合中去,方法是對每碰到一個字符就是用get方法獲得對應的值(也就是出現次數),如果為空就把字符直接添加,如果不是就把值+1,然后重新添加,根據HashMap的特點會覆蓋掉以前的鍵值對,另外,如果想讓鍵值對變得有序創建集合的時候改用TreeMap即可
Collections的簡介和應用
此類僅包含對集合進行操作或返回集合的靜態方法。 它包含對集合進行操作的多態算法,“包裝器”,它返回由指定集合支持的新集合,以及其他一些可能性和結束。
Collections常用三種方法:
//static <T extends Comparable<? super T>>//void sort(List<T> list) 根據其元素的natural ordering ,將指定列表按升序排序。Collections.sort(list);//static void reverse(List<?> list) 反轉指定列表中元素的順序。Collections.reverse(list);//static void shuffle(List<?> list) 使用默認的隨機源隨機置換指定的列表。 (和洗牌一樣的操作)Collections.shuffle(list);使用案例:
模擬斗地主:
主要使用了Collections的shuffle()方法,完成洗牌動作,把牌盒,每一個玩家的牌都看是一個ArrayList 集合,直接集合里面添加元素就完成了發牌動作;思路和代碼中給出了詳細的注釋,可以試著打一遍哦
總結
以上是生活随笔為你收集整理的Java学习打卡第八天——[Collection终结之HashMap,Collections的简介和使用]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: foc学习笔记1——准备工作
- 下一篇: 如何从缓存白嫖网易云音乐