日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java16-day07【Map(概述、特点、功能、遍历)、HashMap集合练习、集合嵌套、Collections、模拟斗地主升级版】

發布時間:2024/9/30 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java16-day07【Map(概述、特点、功能、遍历)、HashMap集合练习、集合嵌套、Collections、模拟斗地主升级版】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 視頻+資料(工程源碼、筆記)【鏈接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg? ?提取碼:zjxs】
  • Java基礎--學習筆記(零起點打開java世界的大門)--博客匯總表

目? ?錄

01_Map集合概述和特點

5.1、Map集合概述和特點

02_Map集合的基本功能

5.2、Map集合的基本功能

03_Map集合的獲取功能

5.3、Map集合的獲取功能

04_Map集合的遍歷(方式1)

5.4、Map集合的遍歷(方式1)

05_Map集合的遍歷(方式2)

5.5、Map集合的遍歷(方式2)

06_HashMap集合練習之鍵是String值是Student

案例:HashMap集合存儲學生對象并遍歷

07_HashMap集合練習之鍵是Student值是String

案例:HashMap集合存儲學生對象并遍歷

08_集合嵌套之ArrayList嵌套HashMap

案例:ArrayList集合嵌套HashMap元素并遍歷

09_集合嵌套之HashMap嵌套ArrayList

案例:HashMap集合存儲ArrayList元素并遍歷

10_統計字符串中每個字符出現的次數

案例:統計字符串中每個字符出現的次數

11_Collections概述和使用

6.1、Collections概述和使用

12_ArrayList集合存儲學生并排序

案例:ArrayList存儲學生對象并排序

13_模擬斗地主

案例:模擬斗地主

14_模擬斗地主升級版案例分析

案例:模擬斗地主升級版

15_模擬斗地主升級版代碼實現


01_Map集合概述和特點

5.1、Map集合概述和特點

Map集合的特點

  • 鍵值對映射關系
  • 一個鍵對應一個值
  • 鍵不能重復,值可以重復
  • 元素存取無序

Map中,K:存儲鍵的類型;V:存儲值的類型。

02_Map集合的基本功能

5.2、Map集合的基本功能

03_Map集合的獲取功能

5.3、Map集合的獲取功能

04_Map集合的遍歷(方式1)

5.4、Map集合的遍歷(方式1)

我們剛才存儲的元素都是成對出現的,所以我們把Map看成是一個夫妻對的集合。

遍歷思路

  • 把所有的丈夫給集中起來
  • 遍歷丈夫的集合,獲取到每一個丈夫
  • 根據丈夫去找對應的妻子

步驟分析

  • 獲取所有鍵的集合。用keySet()方法實現
  • 遍歷鍵的集合,獲取到每一個鍵。用增強for實現
  • 根據鍵去找值。用get(Object key)方法實現

05_Map集合的遍歷(方式2)

5.5、Map集合的遍歷(方式2)

06_HashMap集合練習之鍵是String值是Student

案例:HashMap集合存儲學生對象并遍歷

07_HashMap集合練習之鍵是Student值是String

案例:HashMap集合存儲學生對象并遍歷

鍵相同,值覆蓋!-> 需要在學生類中,重寫hashCode()與equals()方法

Alt+Insert

08_集合嵌套之ArrayList嵌套HashMap

案例:ArrayList集合嵌套HashMap元素并遍歷

09_集合嵌套之HashMap嵌套ArrayList

案例:HashMap集合存儲ArrayList元素并遍歷

10_統計字符串中每個字符出現的次數

案例:統計字符串中每個字符出現的次數

使用HashMap,鍵無順序!!!--> TreeMap(TreeMap可以對鍵進行排序,用法與HashMap差不多!)

? ?? ?

? ??

package com.itheima_06;import java.util.HashMap; import java.util.Scanner; import java.util.Set; import java.util.TreeMap;public class HashMapDemo {public static void main(String[] args) {// 1、鍵盤錄入一個字符串Scanner sc = new Scanner(System.in);System.out.println("請輸入一個字符串:"); // aababcabcdabcde fqylovelinqingxiaString line = sc.nextLine();// 2、創建HashMap集合,鍵是Character,值是Integer // HashMap<Character, Integer> hm = new HashMap<Character, Integer>();TreeMap<Character, Integer> hm = new TreeMap<Character, Integer>();// 3、遍歷字符串,得到每一個字符for (int i = 0; i < line.length(); i++) {char key = line.charAt(i);// 4.、得到的每一個字符作為鍵到HashMap集合中去找對應的值,看其返回值Integer value = hm.get(key);if (value == null) {// 4.1、如果返回值是null:說明該字符在HashMap集合中不存在,就把該字符作為鍵,1作為值存儲hm.put(key, 1);} else {// 4.2、如果返回值不是null:說明該字符在HashMap集合中存在,把該值加1,然后重新存儲該字符和對應的值value++;hm.put(key, value);}}// 5、遍歷HashMap集合,得到鍵和值,按照要求進行拼接StringBuilder sb = new StringBuilder();Set<Character> keySet = hm.keySet();for (Character key : keySet) {Integer value = hm.get(key);sb.append(key).append("(").append(value).append(")");}String result = sb.toString();// 6、輸出結果System.out.println(result);} }

11_Collections概述和使用

6.1、Collections概述和使用

Collections類的概述and作用

  • 是針對集合操作的工具類。

Collections類的常用方法

  • public static <T extends Comparable<? super T>> void sort?(List<T> list):將指定的列表按升序排序
  • public static void reverse?(List<?> list):反轉指定列表中元素的順序
  • public static void shuffle?(List<?> list):使用默認的隨機源隨機排列指定的列表

12_ArrayList集合存儲學生并排序

案例:ArrayList存儲學生對象并排序

static <T extends Comparable<? super T>>?void??sort?(List<T>?list) 根據其元素的natural ordering按照升序排列指定的列表。
根據 自然排序,對元素進行排序。需要讓集合中的元素實現自然排序接口。?

static <T> void sort?(List<T> list, Comparator<? super T> c) 根據指定的比較器引起的順序對指定的列表進行排序。

13_模擬斗地主

案例:模擬斗地主

package com.itheima_02;import java.util.ArrayList; import java.util.Collections;public class PokerDemo {public static void main(String[] args) {// 1:創建一個牌盒,也就是定義一個集合對象,用ArrayList集合實現ArrayList<String> array = new ArrayList<String>();// 2:往牌盒里面裝牌/*?2,?3,?4...?K,?A?2,...?2,...?2,...小王,大王*///定義花色數組String[] colors = {"?", "?", "?", "?"};//定義點數數組String[] numbers = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};for (String color : colors) {for (String number : numbers) {array.add(color + number);}}array.add("小王");array.add("大王");// 3:洗牌,也就是把牌打撒,用Collections的shuffle()方法實現Collections.shuffle(array);// System.out.println(array);// 4:發牌,也就是遍歷集合,給三個玩家發牌ArrayList<String> lqxArray = new ArrayList<String>();ArrayList<String> lyArray = new ArrayList<String>();ArrayList<String> fqyArray = new ArrayList<String>();ArrayList<String> dpArray = new ArrayList<String>(); // 3張底牌for (int i = 0; i < array.size(); i++) {String poker = array.get(i);if (i >= array.size() - 3) { // 最后3張牌dpArray.add(poker);} else if (i % 3 == 0) { // 3個玩家,對3取余lqxArray.add(poker);} else if (i % 3 == 1) {lyArray.add(poker);} else if (i % 3 == 2) {fqyArray.add(poker);}}// 5:看牌,也就是三個玩家分別遍歷自己的牌lookPoker("林青霞", lqxArray);lookPoker("柳巖", lyArray);lookPoker("風清揚", fqyArray);lookPoker("底牌", dpArray);}//看牌的方法public static void lookPoker(String name, ArrayList<String> array) {System.out.print(name + "的牌是:");for (String poker : array) {System.out.print(poker + " ");}System.out.println();} }

??

14_模擬斗地主升級版案例分析

案例:模擬斗地主升級版

15_模擬斗地主升級版代碼實現

package com.itheima_03;import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.TreeSet;public class PokerDemo {public static void main(String[] args) {// 1:創建HashMap,鍵是編號,值是牌HashMap<Integer, String> hm = new HashMap<Integer, String>();// 2:創建ArrayList,存儲編號ArrayList<Integer> array = new ArrayList<Integer>();// 3:創建花色數組和點數數組String[] colors = {"?", "?", "?", "?"};String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};// 4:從0開始往HashMap里面存儲編號,并存儲對應的牌。同時往ArrayList里面存儲編號int index = 0;for (String number : numbers) {for (String color : colors) {hm.put(index, color + number);array.add(index);index++;}}hm.put(index, "小王");array.add(index);index++;hm.put(index, "大王");array.add(index);// 5:洗牌(洗的是編號),用Collections的shuffle()方法實現Collections.shuffle(array);// 6:發牌(發的也是編號,為了保證編號是排序的,創建TreeSet集合接收)TreeSet<Integer> lqxSet = new TreeSet<Integer>();TreeSet<Integer> lySet = new TreeSet<Integer>();TreeSet<Integer> fqySet = new TreeSet<Integer>();TreeSet<Integer> dpSet = new TreeSet<Integer>();for (int i = 0; i < array.size(); i++) {int x = array.get(i);if (i >= array.size() - 3) { // 最后3個索引dpSet.add(x);} else if (i % 3 == 0) {lqxSet.add(x);} else if (i % 3 == 1) {lySet.add(x);} else if (i % 3 == 2) {fqySet.add(x);}}// 8:調用看牌方法lookPoker("林青霞", lqxSet, hm);lookPoker("柳巖", lySet, hm);lookPoker("風清揚", fqySet, hm);lookPoker("底牌", dpSet, hm);}// 7:定義方法看牌(遍歷TreeSet集合,獲取編號,到HashMap集合找對應的牌)public static void lookPoker(String name, TreeSet<Integer> ts, HashMap<Integer, String> hm) {System.out.print(name + "的牌是:");for (Integer key : ts) {String poker = hm.get(key);System.out.print(poker + " ");}System.out.println();} }

總結

以上是生活随笔為你收集整理的Java16-day07【Map(概述、特点、功能、遍历)、HashMap集合练习、集合嵌套、Collections、模拟斗地主升级版】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。