java:Map集合的增删改查

Map集合 目录一、map集合的增删改 二、遍历方式:三、常用实现类Hashmap四、泛型五、集合框架工具类 (1)增强for循环(2)映射方式 实现思路: * 1.做字符串切割,得到一个字符数组 * 2.遍历拿到单个字符 * 3.如果该字符没有出现过,即value值为null,那么该字符为key,值初始化为1 * 4.如果已经出现过则原来值加1用途:统计字符串各字母出现的次数 需求2:根据出现次数排序情况:使用泛型之前 阅读详情


package demo;

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

public class Maptest {
	public Map <String,Student> students;//泛型规定只能传入字符串与学生类型
	public Maptest() {
		this.students=new HashMap<String,Student>();//初始化
	}
	/*
	 * 测试添加学生对象,需要先检查学生是否存在,输入学生id检查学生id是否存在,不存在则添加新学生对象进students
	 */
	//用put方法传递键值对进Map集合
	public void testPut() {
		Scanner console=new Scanner(System.in);
		int i=0;
		System.out.println("将要添加三个学生的信息");
		while(i<3){
		System.out.println("请输入第"+(i+1)+"个学生的id:");
		String ID=console.next();
		Student st=students.get(ID);//get方法用来获取k值,如果获取的k值不存在则返回null
		if(st==null) {//判断k值是否存在
			System.out.println("请输入学生姓名");
			String name=console.next();//获取学生姓名
			Student newstudent=new Student(ID, name);//将输入的两个String值传递到新创建的学生参数里
			students.put(ID, newstudent);//使用put方法将键值对传入map集合
			System.out.println("成功添加学生:"+students.get(ID).name);//返回信息提示添加成功(用get获取键与键对应的值)
			i++;
		}
		else {
			System.out.println("您所输入的学生"+ID+"已存在");
			continue;//结束本次循环,写不写都可以
		}
	  }
	}
	/*
	 * 获取map集合中的所有元素。
	 * 
	 * java没有自带的获取map所有键值对的方法,只能自己写
	 * 先用keyset方法获取map集合中的所有K键元素。
	 * 再用历遍get方法获取对应的V元素,再一一输出
	 */
	public void testkeyset() {
		Set <String> keySet=students.keySet();//使用keyset方法获取map集合中的所有键值,并将键值传入set集合
		System.out.println("总共有"+keySet.size()+"个学生");
		for(String stuId:keySet) {
			Student st=students.get(stuId);//获取map集合中的每一个k值
			if(st!=null) {//当K值不为空时,打印与之相对应的学生姓名
				System.out.println("学生:"+st.id+"."+st.name);
			}
		}
	}
	
	/*
	 * 利用remove方法删除map中的元素
	 */
	public void testRemove() {
		System.out.println("请输入需要删除的学生ID!");
		while (true) {
			Scanner console=new Scanner(System.in);
			String ID=console.next();
			Student st=students.get(ID);//get方法用来获取V值,如果存入的K值不存在则返回null
			if(st==null) {//判断k值是否存在
				System.out.println("需要删除的学生不存在");
				continue;
			}
			else {
				students.remove(ID);
				System.out.println("成功删除学生"+ID+"."+st.name);
				break;
			}
		}
	}
	/*
	 * 获取map集合中所有的键值对
	 */
	public  void testEntrySet() {
		Set<Entry<String, Student>> entrySet=students.entrySet();
		for (Entry<String, Student> entry : entrySet) {
			System.out.println("取得键:"+entry.getKey()+"对应的值为:"+entry.getValue().name);
		}
	}
	/*
	 * 修改map中的元素
	 */
	public void testModify() {
		System.out.println("请输入需要修改的学生ID");
		Scanner console=new Scanner(System.in);
		while (true) {
			String stuID=console.next();
			Student student=students.get(stuID);//根据指定的k值获取V值
			if(student==null) {
				System.out.println("您需要修改的学生信息不存在,请重新输入");
				continue;
			}
			else {
				System.out.println("您需要修改的学生姓名为"+student.name);
				System.out.println("请输入新的学生姓名");
				String stuname=console.next();
				Student newStudent=new Student(stuID, stuname);
				students.put(stuID, newStudent);	
				System.out.println("修改成功");
				break;
			}
		}
	}
	public static void main(String[] args) {
		Maptest mt=new Maptest();
		mt.testPut();//给map集合添加元素
		mt.testkeyset();//展示map中的元素
		mt.testRemove();//删除元素
		mt.testEntrySet();//展示map中的元素
	}
}


ADS 2024 Circuit Envelope 仿真:3步配置调制源,分析5G NR EVM与ACPR 本文详细介绍了ADS 2024 Circuit Envelope仿真技术在5G NR调制源配置与关键指标分析中的应用。通过3步配置调制源,工程师可以高效评估EVM与ACPR等关键指标,特别适用于功放设计中的非线性效应诊断。文章还提供了优化仿真设置和精确提取EVM、ACPR的实用方法,助力5G射频前端设计。 阅读详情

相关推荐

Carla学习笔记(一)服务器跑carla本地显示窗口

其中host后替换为你的服务器IP,-carla-rpc-port和-p后为端口号,需要一致。python3 manual_control.py也可以替换为其他python脚本。因为电脑配置不够,所以在服务器跑carla,本地运行PythonAPI里的样例。把carla仓库的PythonAPI拷贝到本地,或者直接去官方里下载一下。

做题记录 4980

Map集合中的方法(添加、删除、判断、获取)

/*  Map集合:该集合存储键(K)值(V)对,一对一往里存,而且要保证键的唯一性。     1、添加         put(K key,V value)         putAll(Map&lt;? extends K,? extends V&gt; m)     2、删除         clear()         remove(Object key)     3、判断       ...

Architect_优快云的博客 5943

服务器被攻击植入挖矿病毒,CPU占用高问题排查处理(.systemd-service.sh)

客户服务器遭攻击,部署的应用服务经常性被停止,服务器CPU占用居高不下,top查看如下: 可以看到第一个bash任务,占用cpu近400%,非正常的应用程序和脚本任务,多半是被植入了木马信息。 查看该进程的符号连接,发现已经是被删除的状态 /usr/bin/-bash (deleted),无法查看其启动程序的信息 查看定时任务:cat /etc/crontab,发现都是正常的应用程序定时脚本 又用 crontab -l 查看了一下,发现了异常定时任务如下,同top里的异常任务一致...

gottst0113的博客 2121

java获取两个数组中删除的元素,以及新增的元素

java获取两个数组中删除的元素,以及新增的元素

qq_46239275的博客 720

VASP+机器学习快速收敛AIMD

本文介绍了如何利用VASP结合机器学习技术快速收敛AIMD(从头算分子动力学)模拟。首先,通过训练机器学习力场,生成关键文件如ML_ABN(包含结构数据集)、ML_FFN(存储回归结果)和ML_LOGFILE(记录训练日志)。接着,配置INCAR文件以设置计算参数,包括并行化、分子动力学和机器学习相关参数。KPOINTS文件用于定义K点网格。计算完成后,备份CONTCAR文件作为后续模拟的初始结构。最后,利用训练好的力场文件进行纯机器学习力场分子动力学模拟,并提交任务执行。

qq_44812865的博客 1406

避坑指南:RFSoC数据转换器多片同步配置的7个致命错误

本文深入剖析了在配置RFSoC多片同步功能时,工程师最常遇到的七个致命错误。从Tile 0的强制启用、时钟域与SYSREF时序,到跨代器件兼容性、电源序列以及动态重配置的陷阱,文章结合实战经验,提供了从原理到调试的完整RF数据转换器配置指南,旨在帮助开发者高效构建相位一致的大规模射频采样系统。

weixin_28452161的博客 535

java map修改_Map java中的map 如何修改Map中的对应元素

Map java中的map 如何修改Map中的对应元素Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象。Map的接口Map---实现MapMap.Entry--Map的内部类,描述Map中的按键/数值对。SortedMap---扩展Map,使按键保持升序排列关于怎么使用,一般是选择Map的子类,而不直接用Map类。下面以HashMap为例。public...

weixin_36211536的博客 884

YOLOv13优化Faster_Block:卷积(Partial Convolution)、多层感知机(MLP)结构和残差连接

Faster_Block 代表了现代深度学习中效率与性能平衡的一个典型案例。它通过部分卷积技术巧妙地减少了计算开销,同时通过精心设计的架构保持了强大的特征学习能力。这种设计思想对于移动端部署、实时应用和大规模模型训练都具有重要意义。 未来的发展方向可能包括更智能的动态分割策略、与新兴硬件的深度适配,以及与其他先进技术(如自注意力机制、神经架构搜索等)的结合。Faster_Block 的成功展示了在深度学习领域,创新往往来自于对问题本质的深刻理解和巧妙的工程实现。

FJN110的博客 430

HashMap的compute方法(存在此key则修改,不存在,则会进行插入)

package org.example.basic; import java.util.HashMap; import java.util.Map; public class TestCompute { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Shoes", 200); map.

focus-unchanged-thing 3943

Python白色飘雪(完整代码)

Python绘制白色飘雪动画的完整代码。

AIGC 3万+

(王道408考研操作系统)第一章计算机系统概述-第三节2:中断和异常

注意!!! 本节内容和《计算机组成原理》中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式 为了内容完整,部分内容会借用上述文章 文章目录一:中断和异常的基本概念(1)中断和异常的定义 一:中断和异常的基本概念 在操作系统引入核心态和用户态这两种工作状态后,就需要考虑两种状态之间是如何切换的。 操作系统内核工作在核心态,用户程序工作在用户态,系统不允许用户程序使用核心态的功能,但是用户程序为了完成某些操作又必须使用这些功能

快乐江湖的博客 3535

从HashMap到ConcurrentHashMap

转载:https://blog.youkuaiyun.com/liyidaozhang/article/details/72860936

qq_34638435的博客 477

python基础之语言发展历史

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。 目录一、前言二、发展历史1、Python是一种面向对象的解释型编程语言2、Python常被称为胶水语言3、Python由Guido开发4、Python连续多年入选编程语言TOP105、Python的发展历史三、总结 一、前言   由于Python语言的简洁性、易读性以及可扩展性,它在网络爬虫、数据分析、.

jiankang66的博客 3351

Java - 【集合框架三:Map】增删改查

Map Map的常用三个实现类 Map常用API 增 putKV:V 删 removeKV:V removeKVV:boolean 改 putKV:V replaceKV:V replaceKVV:boolean replaceAllBiConsumer 查 containsKeyK:boolean containsValueV:boolean keySet:Set values:Collection 一:Map的常用三个实现类 二:Map常用API Hashtabl

⚡ 750

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java高级特性 - 集合框架(1)第5关:Map集合的增删改查

第5关:Map集合的增删改查 任务描述 本关任务:对Map集合进行增删改查操作。 相关知识 为了完成本关任务,你需要掌握: 1.Map集合的特点; 2.如何操作Map集合。 Map集合的特点 有三点需要你记住: 1、Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够根据key快速查找value; 2、键(key)值不可重复,值(value)是可以的,通过key可以查找value; 3、Map支持泛型,形式如:Map<K,V>。 如何操作Map集合 1.定义和添

weixin_46019348的博客 1816

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Map四种遍历方式以及增删改查方法总结

HashMap 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。 TreeMap 能够把它保存的记录根据键(key)排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序

徐老板带你们趟Java 4410

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java集合------Map集合

本文介绍了Java中三种Map集合的实现:HashMap、TreeMap和Hashtable。HashMap通过哈希表实现,提供了put、get、containsKey等常用方法,允许null键值且无序存储;TreeMap基于红黑树实现,元素按key自然排序,可通过Comparator自定义排序;Hashtable是线程安全的哈希表实现,不允许null键值,所有方法同步但性能较低。三者各有特点:HashMap适用于单线程高效查询,TreeMap适用于有序存储,Hashtable适用于多线程环境。文章详细说明

Aayu_的博客 625

java 集合 总结 表_java-集合总结

集合类存放在java.util包中,主要有三种:set(集)、list(列表包含Queue)、map(映射)。1. collection:collection是集合List、Set、Queue的最基本的接口。2. Iterator:迭代器,可以通过迭代器遍历集合中的数据。3. Map:是映射表的基础接口。集合框架结构图(重要)集合介绍Listlist是非常常用的数据类型。List是有序的Colle...

weixin_39605578的博客 170

Java 集合

常见数据结构 1)数据结构:计算机对数据存储的一种安排 2)常见数据结构 ①数组; ②基于数组模拟的容器类; ③基于链表结构的容器类; 基于数组和基于变量的链表结构,对于数据操作 增删改查 效率问题 1)添加: 数组复制创建新数组, 链表直接挂在尾端 :基于数组慢,变量链表快 2)删除: 数组需要复制数据 链表直接改变链接 : 基于数组慢,变量链表快 3)修改: 数组直接找到索引位置...

weixin_44804144的博客 316

Java集合类程序设计

Java基础案例教程第二版 Java基础程序设计的报告 Java集合类程序设计 设备仪器/软件环境 1.Windows7以上Windows系列操作系统 2.JDK8 3.eclipse 实验(实训)目标 1.掌握Collection以及List集合常用方法的使用。 2.掌握迭代器,增强for循环的使用。 3.掌握List集合和Map集合特点及常用方法的使用。 4.掌握集合遍历的方式。 5.掌握Map集合特点及常用方法的使用。 实验(实训)过程/步骤 实施步骤及相关过程运行效果截图 项目一:库存管理系统

weixin_48864837的博客 1216

【Java面试题】36 List、Map、Set三个接口,存取元素时,各有什么特点?

List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。 Set里面不允许有重复的元素, 存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。 取元素:没法说取第几个,只能以Iterator接...

weixin_30872867的博客 77

Java 第十七次作业

【集合概念】 1.类中属性类型相同,意义与作用也相同,就可以放到集合中 2.数组的长度是固定的,集合的长度或者容量在使用时可以动态扩展的 3.Collection接口和Map接口 4.Collection:序列List(元素排列有序可重复,实现类ArrayList,数组序列) 队列Queue(元素排列有序可重复,实现类LinkedList,链表也是List实现类) 集Set(无序不可重复 HashSet哈希集) 5.Map(实现类:HashMap 哈希表)内部类 Entry(键值对) 实例&lt;

Tjhci的博客 319

集合类初步的认识

Java集合类中的体系 两个大的部分: collection:保存的是一个一个的元素:ArrayList LinkedList HashSet TreeSet Map:保存的是一个一个键值对:HashMap TreeMap 他们这两个的核心操作都是增删改查,要多敲,熟悉套路 ...

weixin_47331155的博客 150

学java教程之集合框架

学编程吧学编程学IT教程之java教程集合框架发布了,欢迎通过xuebiancheng8.com来访问 java中的集合框架故名思议就是针对集合的框架。那什么是集合呢,前面已经学习过数组,没错,数组就是一组数据的集合,换句话说数组也是一种特殊的集合框架,可以完成集合的功能。那数组在使用的时候有没有不方便的地方呢,比方说数组有可能有满的时候,满了怎么办,我们是不是得自己写程序来更改数组的大小呢...

iteye_3140的博客 98

Java 常用集合容器

本文系统总结了Java常用集合容器,分为Collection和Map两大体系。Collection包含List(有序可重复,如ArrayList、LinkedList)、Set(无序不重复,如HashSet、LinkedHashSet)和Queue(队列);Map存储键值对(如HashMap、LinkedHashMap)。文章详细列举了各集合的特点、常用实现类及核心方法,并提供了使用场景建议和速记技巧。开发中90%场景推荐使用ArrayList、HashSet和HashMap,需要线程安全时选择Concur

echo的博客 362

JAVA算法之List、Set、Map核心操作速记表(易背版)

本文总结了Java中List、Set、Map三大集合的核心操作速记表,帮助开发者快速掌握关键用法。List围绕索引操作,核心方法包括add/remove/get;Set注重去重,包含add/remove/contains;Map基于键值对,主要方法为put/get/remove。文章提供易背口诀和常见易错点,如List的索引越界、Set的无索引特性、Map的键唯一性等。记忆技巧强调先理解集合特性,再分类掌握增删改查方法。适合Java新手学习和老手快速回顾,提升开发效率和面试准备效果。

一键难忘的博客 601
上一篇: java:实例化集合示例
下一篇: java:list集合的增删改查
include_ice
博客等级 码龄9年 307粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值