• 视频+资料(工程源码、笔记)【链接: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、模拟斗地主升级版】相关推荐

  1. JavaSE学习总结(十四)Map集合/Map和Collection的区别/HashMap/LinkedHashMap/TreeMap/集合间的嵌套/Hashtable/Collections工具类

    一.Map集合 我们知道,一个学号就能对应一个学生,并且每个学生的学号都不同,学号就像一个键,对应的学生就是该键对应的值.日常生活中经常能见到这种类似学号对应学生的例子.Java 为了我们更加方便地去 ...

  2. 遍历 HashMap 的 5 种最佳方式,我不信你全知道!

    在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法. 使用 Iterator 遍历 HashMap EntrySet 使用 Iterator 遍历 HashMap Key ...

  3. List、Set、Map的特点及遍历方法

    List.Set.Map List与Set集合的区别 List.Map.Set三个接口,存取元素时,各有什么特点 Set List Map List.Set.Map遍历的实现 先来个Employee实 ...

  4. 遍历 HashMap 的 5 种方式总结

    介绍 在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种方法. 1.使用 Iterator 遍历 HashMap EntrySet 2.使用 Iterator 遍历 HashMa ...

  5. 遍历HashMap的几种方式总结

    1.使用Iterator遍历HashMap HashMap<String, String> map = new HashMap<>(); // 添加元素 map.put(&qu ...

  6. 遍历 HashMap 的 5 种最佳方式

    1. 使用 Iterator 遍历 HashMap EntrySet 2. 使用 Iterator 遍历 HashMap KeySet 3. 使用 For-each 循环遍历 HashMap 4. 使 ...

  7. 如何遍历 HashMap,遍历HashMap 的 5 种最佳方式

    在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法. 使用 Iterator 遍历 HashMap EntrySet 使用 Iterator 遍历 HashMap Key ...

  8. java foreach hashmap_在 Java 中遍历 HashMap 的5种最佳方式

    在本文中,我们将通过示例讨论在 Java 上遍历  HashMap  的五种最佳方式. 使用  Iterator  遍历 HashMap EntrySet 使用  Iterator  遍历 HashM ...

  9. 遍历hashMap的5种方法

    1.使用Iterator 遍历HashMap EntrySet 2.使用Iterator 遍历HashMap KeySet 3.使用For-each 循环迭代 HashMap 4.使用Lambda 表 ...

最新文章

  1. 【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
  2. [C# 开发技巧系列]如何动态设置屏幕分辨率
  3. linux线程堆分配,如何在Linux中的相同进程下为线程分配堆栈或内存
  4. mybatis执行批量更新batch update 的方法(oracle,mysql)
  5. Spark-三大数据结构之-广播变量
  6. android:fillviewport=true 不起作用,无法在android模拟器中滚动
  7. 区块链 以太坊 合约 创建、执行 详解
  8. 软件设计工程——数据库设计
  9. 【软件】RustDesk自己搭建远程控制服务软件 支持控制手机
  10. sim7020c功耗_SIM7020C NB-IoT HAT教程
  11. pgadmin4下载
  12. Vant Weapp - 有赞出品的免费开源微信小程序组件库
  13. 用华为手机拍照别直接按快门,先打开这个按钮,效果翻倍堪比单反
  14. android 仿QQ相册
  15. 如何用一束激光欺骗神经网络
  16. 2021申请邓白氏编码最新操作手册
  17. word_excel_office向程序发送命令时出现问题
  18. leetcode_Remove Duplicates from Sorted Array
  19. 商城项目实战24:实现添加商品功能
  20. 阿里大数据ACP认证对找工作到底有用嘛?

热门文章

  1. lwip接收文件 stm32_接收数据
  2. 外部中断器1C语言程序,单片机C语言代码:外部中断,按下中断按键LED不亮,LED1正常亮...
  3. m227fdw恢复出厂设置_惠普M227fdw使用说明
  4. python雷达和柱形图_Python Pygal常见数据图(折线图、柱状图、饼图、点图、仪表图和雷达图)详解...
  5. 创建hadoop用户并配置ssh免密码登录
  6. 迁移学习之域自适应理论简介(Domain Adaptation Theory)
  7. NeurIPS 2021 | 简单且通用的多视图对比图聚类方法
  8. NLP技术中的Tokenization
  9. 48小时单GPU训练DistilBERT!这个检索模型轻松达到SOTA
  10. 直播报名 | 小身材大能量!用英伟达智能小车Jetbot玩转深度学习