【Java寒假打卡】Java基础-集合Map

news2024/11/16 15:27:53

【Java寒假打卡】Java基础-集合Map

    • 基本使用
    • Map集合的基本功能
    • Map集合的第一种遍历方式
    • Map集合的第二种遍历方式
    • 案例:HashMap集合存储ArrayList元素并遍历
    • 案例:统计字符串中每一个字符出现的次数
    • Collections操纵集合

基本使用

在这里插入图片描述

创建Map集合的对象:

  • 多态的方式:Map引用指向HashMap对象
  • 具体的实现类HashMap
  • 键必须唯一,当这个键不是唯一地时候,后面的键值对会替换前面的重复键值对
package com.hfut.edu.test8;

import java.util.HashMap;
import java.util.Map;

public class test1 {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();// 多态的方式创建对象  父类引用指向子类对象
        map.put("1","sss");
        map.put("2","sss");
        map.put("3","sss");
        map.put("4","sss");
        System.out.println(map);// HashMap 重写了toString 方法,可以直接打印
    }
}

Map集合的基本功能

在这里插入图片描述

package com.hfut.edu.test8;

import java.util.HashMap;
import java.util.Map;

public class test1 {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();// 多态的方式创建对象  父类引用指向子类对象
        map.put("1","ssEQWs");
        map.put("2","ssEQWs");
        map.put("3","ssQDs");
        map.put("4","ssSAs");

        System.out.println(map);// HashMap 重写了toString 方法,可以直接打印

        // 根据指定的键 删除元素  返回的是value
        System.out.println(map.remove("1"));
        System.out.println(map.remove("dsdd"));// 返回null

        // 判断集合是否包含指定的键值对
        System.out.println(map.containsKey("郭靖"));
        System.out.println(map.containsKey("2"));

        // 判断集合是否是空
        System.out.println(map.isEmpty());

        // 输出集合的长度
        System.out.println(map.size());



    }
}


Map集合的第一种遍历方式

在这里插入图片描述

package com.hfut.edu.test8;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class test2 {
    public static void main(String[] args) {

        // 创建集合对象
        Map<String,String > map = new HashMap<>();

        // 添加元素
        map.put("张无忌","赵敏");
        map.put("郭靖","黄蓉");
        map.put("杨过","小龙女");

        // 根据键获取值
        System.out.println(map.get("杨过"));
        System.out.println(map.get("杨过guo"));// 输出null

        // 获取所有键的集合
        Set<String> keySet = map.keySet();

        for (String i :keySet){
            System.out.println(i);
        }

        // 获取所有值的集合
        Collection<String> values = map.values();

        for(String s:values){
            System.out.println(s);
        }



    }
}


Map集合的第二种遍历方式

在这里插入图片描述

package com.hfut.edu.test8;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class test2 {
    public static void main(String[] args) {

        // 创建集合对象
        Map<String,String > map = new HashMap<>();

        // 添加元素
        map.put("张无忌","赵敏");
        map.put("郭靖","黄蓉");
        map.put("杨过","小龙女");

        Set<String> s = map.keySet();// 获取所有的键

        // 遍历键的集合 然后使用get方法获取所有的value
        for(String key: s){
            String value = map.get(key);
            System.out.println(key + "," + value);
        }

    }
}

案例:HashMap集合存储ArrayList元素并遍历

在这里插入图片描述

package com.hfut.edu.test8;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

public class test3 {
    public static void main(String[] args) {

        // HashMap集合
        HashMap<String, ArrayList<String>> hm = new HashMap<>();// 值是ArrayList集合

        ArrayList<String> arr1 = new ArrayList<>();
        arr1.add("hello");
        arr1.add("world");

        hm.put("1",arr1);// 塞进集合容器

        ArrayList<String> arr2 = new ArrayList<>();
        arr2.add("gdhasgh");
        arr2.add("ghcfruwegrf");

        hm.put("2",arr2);

        // 遍历HashMap集合  先取出所有的键
        Set<String> s = hm.keySet();

        for (String i:s){
            ArrayList<String> arr = hm.get(i);
            System.out.println(arr);
        }
    }
}


案例:统计字符串中每一个字符出现的次数

在这里插入图片描述

package com.hfut.edu.test8;

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class test4 {
    public static void main(String[] args) {
        // 键盘录入字符串
        Scanner sc  = new Scanner(System.in);

        System.out.println("请输入一个字符串");
        String line = sc.nextLine();

        // 创建HashMap集合
        HashMap<Character,Integer> hm = new HashMap<>();

        // 遍历字符串  得到每一个字符
        for (int i = 0; i < line.length(); i++) {
            char key = line.charAt(i);

            // 将每一个字符作为键 存入HashMap集合中  找对应的值
            Integer value = hm.get(key);// 返回值

            if(value == null){
                hm.put(key,value);
            }else {
                // 说明原先已经存在该字符 将字符个数加一
                value++;
                hm.put(key,value);
            }
        }

        // 遍历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(")");
        }
        // 将StringBuilder 转换成字符串对象
        String s = sb.toString();
        System.out.println(s);
    }
}


Collections操纵集合

package com.hfut.edu.test8;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class test5 {
    public static void main(String[] args) {
        // 创建集合对象
        List<Integer> list = new ArrayList<>();

        // 添加元素
        list.add(1);
        list.add(2);
        list.add(3);

        // 对集合进行排序  调用Collections的静态方法
        Collections.sort(list);
        System.out.println(list);

        // 反转list元素
        Collections.reverse(list);
        System.out.println(list);

        // 对集合进行随机排序
        Collections.shuffle(list);
        System.out.println(list);

    }
}


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

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

相关文章

金融历史数据导入之股票 level2 逐笔篇

在部署完 DolphinDB 后&#xff0c;将历史数据导入数据库是后续进行数据查询、计算和分析的基础。为协助用户快速导入数据&#xff0c;本文档基于 DolphinDB 已有的教程与大量用户的实践经验&#xff0c;从操作者角度出发&#xff0c;以 CSV 格式的文件为例&#xff0c;详细介绍…

通讯电平转换电路中的经典设计

今天给大家分享几个通讯电平转换电路。 有初学者问&#xff1a;什么是电平转换&#xff1f;举个例子&#xff0c;比如下面这个电路&#xff1a; 单片机的工作电压是5V&#xff0c;蓝牙模块的工作电压是3.3V&#xff0c;两者之间要进行通讯&#xff0c;TXD和RXD引脚就要进行连接…

Revit里轴网隐藏尺寸标注跟着消失?快速轴网距离标注

一、Revit中链接项目文件轴网的巧妙处理 问题&#xff1a;在单元式住宅体系中&#xff0c;轴网的使用主要是对尺寸标注的影响&#xff0c;如果要将子文件链接到父文件中&#xff0c;需要隐藏轴网&#xff0c;这样与轴网关联的尺寸标注就会消失。 关于尺寸标注与轴网隐藏方式的关…

Java IO流(基础详解,快速上手!)

文章目录概述什么是IO流&#xff1f;常用的文件操作获取文件操作目录操作IO流的原理和分类概述 在Java的学习中&#xff0c;文件和IO流是一个十分重要的板块。在Java中&#xff0c;File是文件和目录路径名的抽象表示。文件和目录可以通过File封装成对象。对File而言&#xff0…

前端 base64与图片相互转换

base64转图片 如下图&#xff1a;&#xff08;后端返回的数据&#xff09; <img :src"baseImg" >let baseImg "" this.baseImg "data:image/png;base64," data?.flowCharbase64转换图片文件 base64ImgtoFile (dataurl, filename …

QT 学习笔记(十六)

文章目录一、TCP 传文件流程图1. 服务器端流程2. 客户端流程二、TCP 传文件操作实现1. 服务器端2. 客户端3. TCP 传文件实现现象三、服务器端和客户端实现代码1. 主函数 main.c2. 服务器端头文件 serverwidget.h3. 服务器端源文件 serverwidget.cpp4. 客户端头文件 clientwidge…

某医院的实战渗透测试(组合拳)

实战渗透一、前言二、Spring信息泄露三、Redis写公钥四、文章来源一、前言 项目是内网环境下进行&#xff0c;所以通过vpn接入内网之后进行目标系统的测试。&#xff08;信息泄露redis写公钥&#xff09; 二、Spring信息泄露 访问客户给的目标地址通过代理把流量转给了BurpS…

零基础学软件测试有前途吗?

随着软件工程活动的不断演化&#xff0c;测试工作某种程度上是可以很大幅度提高软件的产品质量以及提升用户的使用满意度&#xff0c;因此软件测试工程师的地位在企业中也越来越受到重视。不少零基础学IT的朋友也开始把软件测试作为一个绝佳的选择对象&#xff0c;那么零基础学…

leetcode.1806 还原排列的最少操作步数 - 模拟 + lcm

​​​​​​1806. 还原排列的最少操作步数 本题是数论题 共介绍4种解题方法 目录 1、所有置换环长度的最小公倍数 2、最小操作数是最大环长度 3、1或n-2所在环长度即为最大置换环长度 4、暴力模拟 思路&#xff1a; 因为数据范围很小 所以可以直接模拟 也可以优化一下—…

Python 模型训练:LSTM 时间序列销售额预测(训练、保存、调用)

LSTM (long short-term memory) 长短期记忆网络&#xff0c;具体理论的就不一一叙述&#xff0c;直接开始 流程一、数据导入二、数据归一化三、划分训练集、测试集四、划分标签和属性五、转换成 LSTM 输入格式六、设计 LSTM 模型6.1 直接建模6.2 找最好七、测试与图形化展示八、…

JavaSE-07

字节流输入输出数据&#xff1a; InputStream和OutputStream作为字节流输入输出流的超类。 字节流写数据时千万记得close关闭资源&#xff0c;可设置追加写为true 字节流读数据时&#xff0c;FileInputStream a new FileInputStream (“”); int by a.read(); char b (char…

隐蔽信道学习

隐蔽信道作为一种能够在不被系统感知的情况下稳定窃取秘密信息的通信手段&#xff0c;尽管其带宽通常较低&#xff0c;但其设计上的复杂性和多样性&#xff0c;使得常规的流量审计系统难以对抗或检测。同时&#xff0c;隐蔽信道也是密钥、身份认证、商业机密等秘密信息传输的重…

基于JAVA SSM框架的新闻管理系统源码+数据库,实现 登录 、 注册、 新闻内容、类别、评论、个人信息、系统管理等功能

[基于SSM框架的新闻管理系统] 前言 下载地址&#xff1a;基于JAVA SSM框架的新闻管理系统源码数据库 基于SSM框架的新闻管理系统&#xff1b; 实现 登录 、 注册 、 新闻内容、类别、评论、个人信息、系统管理等功能 &#xff1b; 可继续完善增加前端、等其他功能等&#x…

federated引擎实现mysql跨服务器表连接

&#x1f4e2;作者&#xff1a; 小小明-代码实体 &#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/as604049322 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 欢迎讨论&#xff01; &#x1f4e2;本文链接&#xff1a;https://xxmdmst.blog.csdn.n…

IU5066 高耐压带OVP保护1.2A单节锂电池线性充电IC

概要 IU5066E是面向空间受限便携应用的&#xff0c;高度集成锤离子和锤聚合物线性充电器器件。该器件由USB端口或交流适配器供电。带输入过压保护的高输入电压范围支持低成本、非稳压适配器。 电池充电经历以下三个阶段&#xff1a; 涓流、电流、恒压。在所有充电阶段&#x…

JSON对象(javascript)

本文内容主要包括了对于JS中JSON对象的一些内容。我们知道JSON格式是前后端进行信息交换的中介信息格式。适用于取代XML格式的一种格式&#xff0c;在多数编程语言中都有关于JSON的处理方法。那么javascript也提供了JSON对象用于处理相应的数据。 1. 什么是JSON格式&#xff1…

mac安装jdkidea配置jdk

第一步&#xff1a;mac安装jdk1、下载jdk&#xff0c;下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/#java82、安装后&#xff0c;终端输入java -version查看java是否安装成功3、配置环境变量a.在终端输入 /usr/libexec/java_home 可以得到JAVA_HOM…

【矩阵论】5. 线性空间与线性变换——线性映射与自然基分解,线性变换

矩阵论 1. 准备知识——复数域上矩阵,Hermite变换) 1.准备知识——复数域上的内积域正交阵 1.准备知识——Hermite阵&#xff0c;二次型&#xff0c;矩阵合同&#xff0c;正定阵&#xff0c;幂0阵&#xff0c;幂等阵&#xff0c;矩阵的秩 2. 矩阵分解——SVD准备知识——奇异值…

深度学习人体解析

人体解析旨在将图像或视频中的人体分割成多个像素级的语义部分。在过去的十年中&#xff0c;它在计算机视觉社区中获得了极大的兴趣&#xff0c;并在广泛的实际应用中得到了应用&#xff0c;从安全监控到社交媒体&#xff0c;再到视觉特效&#xff0c;这只是其中的一小部分。尽…

Markdown语法大全(够你用一辈子)

标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 文本样式 > 引用文本 > 最外层 > > 第一层嵌套 > > > 第二层嵌套引用文本 最外层 第一层嵌套 第二层…