JAVA黑马程序员day12--集合进阶(下部--双列集合)

news2024/10/5 13:50:12

在这里插入图片描述

Map

HashMap

在这里插入图片描述

练习一

在这里插入图片描述
需提前定义学生类,并重写HashMap方法(不然无法覆盖)

public class MapDemo4 {
    public static void main(String[] args) {
        //1.创建HashMap对象
        HashMap<Student,String> hm=new HashMap<>();

        //2、创建3个学生对象
        Student s1=new Student("zhangsan",23);
        Student s2=new Student("lisi",24);
        Student s3=new Student("wangwu",25);
        Student s4=new Student("wangwu",25);

        hm.put(s1,"天津");
        hm.put(s2,"北京");
        hm.put(s3,"福建");//被覆盖
        hm.put(s4,"山东");

        Set<Student> keys =hm.keySet();
        for (Student key : keys) {
            String value=hm.get(key);
            System.out.println(key+"="+value);
        }
    }
}

在这里插入图片描述

练习2

在这里插入图片描述

package day12;

import java.util.*;

public class MapDemo5 {
    public static void main(String[] args) {
        //1.需要先让同学们投票
        //定义一个数组,存储四个景点
        String[] arr={"A","B","C","D"};
        //利用随机数模拟80个同学的投票,并把投票的结果存储起来
        ArrayList<String> list=new ArrayList<>();
        Random r=new Random();
        for(int i=0;i<80;i++){
            int index=r.nextInt(arr.length);
            list.add(arr[index]);
        }

        //2.如果要统计的东西比较多,不方便使用计数器思想
        //我们可以定义map集合,利用集合进行统计
        HashMap<String,Integer> hm=new HashMap<>();
        for (String name : list) {
            if(hm.containsKey(name)){
                int count=hm.get(name);
                count++;
                //把新的次数再次添加到集合当中
                hm.put(name,count);
            }else{
                //不存在
                hm.put(name,1);
            }
        }
        System.out.println(hm);

        //3.求最大值
        int max=0;
        Set<Map.Entry<String,Integer>> entries=hm.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            int count=entry.getValue();
            if(count>max){
                max=count;
            }
        }
        System.out.println(max);

        //4.判断哪个景点的次数和最大值一样,如果一样,打印出来
        for (Map.Entry<String, Integer> entry : entries) {
            int count=entry.getValue();
            if(count==max){
                System.out.println(entry.getKey());
            }
        }
    }
}

LinkedHashMap

在这里插入图片描述

TreeMap

在这里插入图片描述
TreeMap练习:
在这里插入图片描述

package day12;

import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] args) {
        /*
        * 新的统计思想:利用Map集合进行统计
        * 如果题目中没有要求对结果进行排序,默认使用HashMap
        * 如果题目中要求对结果进行排序,请使用TreeMap
        *
        * 键:表示要统计的内容
        * 值:表示次数
        * */

        //1.定义字符串
        String s="aababcabcdabcde";
        //2.创建集合
        TreeMap<Character,Integer> tm=new TreeMap<>();
        //3.遍历字符串得到里面的每一个字符
        for (int i = 0; i < s.length(); i++) {
            //拿着c到集合中判断是否存在
            //存在,表示当前字符又出现了一次
            //不存在,表示当前字符是第一次出现
            char c=s.charAt(i);

            if(tm.containsKey(c)){
                //存在
                //先把已经出现的次数拿出来
                int count=tm.get(c);
                //当前字符又出现了一次
                count++;
                //把自增之后的结果添加到集合当中
                tm.put(c,count);
            }
            else{
                //不存在
                tm.put(c,1);
            }
        }
        //4.遍历集合,并按照指定格式进行拼接
        //a(5)b(4)……
        //此处使用lambda表达式进行遍历
        //使用StringBuilder进行拼接
        StringBuilder sb=new StringBuilder();
        tm.forEach((key,value)-> sb.append(key).append("(").append(value).append(")"));

        System.out.print(sb);
    }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP从放弃到入门系列之MRP中BOM的选择逻辑

翻译大佬的文章&#xff1a; 原文地址如下&#xff1a; 一、概述 BOM选择逻辑比较复杂&#xff0c;涉及到物料主数据的多个自定义和字段&#xff0c;所以我在这里总结一下。 首先&#xff0c;材料的 BOM 可能存在于下面的业务场景中。 1. 多个用途&#xff1a;例如生产BOM、…

怎么关闭管理员权限?

每台电脑在装上系统后&#xff0c;除你自己新建的账户外&#xff0c;会自动新建一个叫administrator的管理计算机(域)的内置账户&#xff0c;它平时是隐藏的&#xff0c;它是计算机管理员的意思&#xff0c;它拥有计算机管理的高权限&#xff0c;我们新建的账户都是在它之下派生…

远程计算机控制软件

远程控制软件允许您连接和控制位于不同位置的设备&#xff0c;对于 IT 帮助台技术人员来说&#xff0c;这是一个很好的工具&#xff0c;可以通过与用户协作、与他们聊天以及安全地访问他们的文件来轻松排除故障和修复远程设备。使用远程控制软件&#xff0c;距离不再是提供技术…

2023软件测试的就业前景以及发展方向介绍

2023年&#xff0c;随着数字化和信息技术的不断发展&#xff0c;软件测试作为保障软件质量的重要环节&#xff0c;在科技产业中扮演着至关重要的角色。那么&#xff0c;2023软件测试的就业前景如何&#xff1f; 软件测试的就业前景将呈现出较好的趋势&#xff0c;以下是对其就…

SpringBoot使用AOP详解

目录 1 AOP是什么2 AOP概念3 Springboot中使用AOP4 AOP原理5 应用场景 1 AOP是什么 AOP&#xff08;Aspect Oriented Programming&#xff09;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续&…

【适用于电力系统和音频系统】计算信号的总谐波失真 (THD)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Sequential Recommendation with Graph Neural Networks

Sequential Recommendation with Graph Neural Networks 文章目录 1. 背景2. 模型2.1 Interest Graph Construction2.1.1 Raw graph construction2.1.2 Node similarity metric learning2.1.3 Graph sparsification via &#x1d700;-sparseness 2.2 Interest-fusion Graph C…

线性代数的本质(一)——向量空间

文章目录 向量空间向量及其性质基与维数向量的坐标运算 《线性代数的本质》 - 3blue1brown 高中数学A版选修4-2 矩阵与变换 《线性代数及其应用》(第五版) 《高等代数简明教程》- 蓝以中 向量空间 In the beginning Grant created the space. And Grant said, Let there be vec…

一文了解气象观测站是什么?

一、气象观测站的定义 气象观测站是一种专门负责观测、记录气象数据的设施&#xff0c;包括风向、风速、温度、湿度、气压、降水量等多个气象要素。这些数据不仅对科研和预报具有重要意义&#xff0c;还对我们的日常生活有着极大的影响。 二、气象观测站的种类 气象观测站根…

Vue3+Ts中使用Jquery

1、安装jquery&#xff1a;npm i jquery --save 2、在vue.config.js文件中添加如下代码&#xff1a; const { defineConfig } require(vue/cli-service) const webpack require(webpack)module.exports defineConfig({configureWebpack: {plugins: [// 配置jQuerynew webp…

蓝桥杯打卡Day9

文章目录 直角三角形最长平衡串 一、直角三角形IO链接 本题思路:本题就是利用欧几里得距离求解即可。 #include <bits/stdc.h>int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);int T;std::cin>>T;while(T--){int x…

一键搭建免费eXtplorer在线文件管理器,远程登录实现文件随身存储

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件&#xff0c;是互联网最重要的应用之一&#xff0c;无论是…

利用红黑树封装map和set

目录 一、正向迭代器1.1 operator1.2 operator--1.3 参考代码 二、反向迭代器三、封装set四、封装map五、底层红黑树的实现 一、正向迭代器 我们之前vector&#xff0c;list这些都是容器的迭代器都是简单的指针或者_node_node->next这样的&#xff0c;那是因为它们要么是连…

数据可视化:揭示隐藏信息的强大工具

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 引言 数据可视化是将数…

WebGL透视投影

目录 透视投影 透视投影可视空间 可视空间构造效果图 Matrix4.setPerspective&#xff08;&#xff09; 三角形与可视化空间的相对位置 示例代码 代码详解 示例效果 投影矩阵的作用 透视投影矩阵对物体进行了两次变换 透视投影变换示意图 透视投影 在透视投影下&…

华为云云耀云服务器L实例评测|拉取创建canal镜像配置相关参数 搭建canal连接MySQL数据库 spring项目应用canal初步

前言 最近华为云云耀云服务器L实例上新&#xff0c;也搞了一台来玩&#xff0c;本篇博客介绍如何在华为云上部署canal的docker镜像&#xff0c;以及在spring项目中的初步应用。 其他相关的华为云云耀云服务器L实例评测文章列表如下&#xff1a; 初始化配置SSH连接 & 安装…

IntelliJ IDEA使用_常用快捷键(windows版)

文章目录 版本说明搜索操作层级关系查看光标选择代码定位代码操作Git操作编辑器操作 版本说明 当前的IntelliJ IDEA 的版本是2021.2.2&#xff08;下载IntelliJ IDEA&#xff09; ps&#xff1a;不同版本一些图标和设置位置可能会存在差异&#xff0c;但应该大部分都差不多。…

C++ PrimerPlus 复习 第四章 复合类型(上)

第一章 命令编译链接文件 make文件 第二章 进入c 第三章 处理数据 第四章 复合类型 &#xff08;上&#xff09; 文章目录 创建和使用数组&#xff1b;**声明语句中初始化数组元素。****使用大括号的初始化&#xff08;列表初始化&#xff09;** 字符串创建和使用C风格字符…

好用免费的链接转二维码

能把链接等转成二维码的形式 &#xff0c;并且是完全免费的 &#xff0c;超级好用&#xff1a;草料网址二维码生成器 https://cli.im/url?3f07d81d705e31db2dcde5ca2feeece8 测试了博客的链接转成了二维码 &#xff0c;很好用

(入门向)面向萌新的算法比赛入门指南

什么是算法 算法是指解决问题或完成特定任务的一系列明确指令或步骤集合。它是一个定义良好、逐步执行的操作序列&#xff0c;用于将输入转换为输出。算法可用于计算、数据处理、自动化控制、问题解决等各个领域。 算法通常由一系列简单的操作组成&#xff0c;这些操作可以是…