java基础——Map集合
Map以键值对的形式存储数据,其中Map.entry,是Map的内部类,它用来描述Map中的键值对。Map是一个接口,HashMap是他的一个实现类
Map中有几个重要的方法:
get(Object key);//获取给key的值
put(Object key,Object value);//该方法会将原先key所对应的键值对覆盖掉,即可以使用该方法来修改Map中的值
containsKey(Object key);//是否包含某个元素。通过配合get和put方法,来实现匹配并修改Map中的元素
Collection容器中包含Set和List接口,Set中又包含HashSet,List中包含LinkedList和ArrayList;单独的Map接口中只有HashMap。
java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。 List的具体实现包括 ArrayList和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List适用于按数值索引访问元素的情形,其中的数据有顺序且可以重复(有顺序即提供get(i)的索引方法)。而Set中数据无顺序且不可以重复。
重点:Map遍历
迭代Map中的元素不存在直接的方法。如果要迭代Map中的元素,必须首先获得Map 的“视图”。
返回视图的Map方法。通过这些方法可以遍历Map元素,也可以删除Map中的元素。
(1)entrySet() :返回所有键值对
返回 Map中所包含映射的 Set视图。 Set 中的每个元素都是一个 Map.Entry对象,可以使用 getKey()和 getValue()方法(还有一个 setValue()方法)访问后者的键元素和值元素
(2)keySet() :返回所有键
返回 Map中所包含键的 Set 视图。删除 Set中的元素还将删除 Map中相应的映射(键和值)
(3)values() :返回所有值
返回 map中所包含值的 Collection视图。删除 Collection中的元素还将删除 Map中相应的映射(键和值)
用一个华为上机题作为例子,就明白了
题目是:手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)
/**
* 手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)
* 实例:
* 输入:aaabbbccc
* 输出:
* a 3
* b 3
* c 3
* Created by fanyukai on 2018\3\8 0008.
*/
public class MapJava {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入字符串");
String str = scan.next();
Map<Character,Integer> map=countChar(str); //这里我采用增强for循环来遍历Map集合
for (Map.Entry<Character,Integer> entry : map.entrySet()){
System.out.println(entry.getKey()+":"+entry.getValue());
}
} private static Map<Character,Integer> countChar(String str) {
int i=0;
Map<Character,Integer> map = new HashMap<Character,Integer>();
//这里利用了HashMap集合的特性,put方法放入键值对时,若key值相同,那么原先key对应的值将会被覆盖
while (i < str.length()){
if(!map.containsKey(str.charAt(i))){
map.put(str.charAt(i),1);
}else{
map.put(str.charAt(i),map.get(str.charAt(i))+1);
}
i++;
}
return map;
}
}
结果截图:

这道问题主要考的是:Map集合的常用方法(put,get,containsKey),Map集合如何遍历(必须要获得视图entrySet,并且定义对象Map.Entry)
java基础——Map集合的更多相关文章
- java基础-Map集合
java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...
- Java基础知识:Java实现Map集合二级联动1
Java实现Map集合二级联动 Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省 ...
- 第6节:Java基础 - 三大集合(上)
第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...
- 备战金三银四!一线互联网公司java岗面试题整理:Java基础+多线程+集合+JVM合集!
前言 回首来看2020年,真的是印象中过的最快的一年了,真的是时间过的飞快,还没反应过来年就夸完了,相信大家也已经开始上班了!俗话说新年新气象,马上就要到了一年之中最重要的金三银四,之前一直有粉丝要求 ...
- java基础技术集合面试【笔记】
java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...
- Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)
Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- Java基础知识:Java实现Map集合二级联动2
2. 定义获取省份的方法,创建一个Map集合,将上一步得到的映射集合赋值给它,使用Map集合的keySet()方法获取该集合中的所有键对象组成的Set 集合,即为省分集合,创建一个Object型一维数 ...
- java基础之集合:List Set Map的概述以及使用场景
本文的整体思路以及部分文字来源:来源一 和 来源二 Java集合类的基本概念: 首先大家要明白集合为什么会出现: 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是 ...
随机推荐
- python——函数重点总结
参数的分类 形参:位置参数.默认参数.*args.命名关键字参数.**kwargs 实参:位置参数.关键字参数 命名关键字参数:定义在*后面的位置参数和默认参数叫作命名关键字参数:用来限制实参必须以关 ...
- IOS在滚动的时候fixed消失
前段时间,除了apple发布了新的硬件之外,同步还发布了新的操作系统,IOS11,当大家都将注意力聚焦在那个奇怪的刘海该如何适配的时候,笔者的项目在适配IOS11却出现了其他的问题. 众所周知,I ...
- ASM 磁盘组的的scrip
之前经常用如下方式进行查询:步骤 1 以oracle用户登录系统.步骤 2 执行如下命令改变ORACLE_SID环境变量.$ export ORACLE_SID=+ASM1[1或者2]需要通过ps - ...
- Codeforces Round #378 (Div. 2) D. Kostya the Sculptor 分组 + 贪心
http://codeforces.com/contest/733/problem/D 给定n个长方体,然后每个长方体都能选择任何一个面,去和其他长方体接在一起,也可以自己一个,要求使得新的长方体的最 ...
- (转)通过MySQL复制线程SQL_Thread加快增量恢复binlog
数据回档常常是使用全量备份+binlog增量实现的.而数据量很大的情况下,增量恢复binlog一直是一个苦恼的问题,因为恢复binlog速度十分慢,并且容易出错. 恢复binlog文件一般有两种方法: ...
- PHP&Java 调用C#的WCF
步骤一:用C#声明WCF [ServiceContract] public interface IService1 { [OperationContract] void DoWork(); [Oper ...
- Python踩坑之旅其二裸用os.system的原罪
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 1.5 填坑总结 2. 前坑回顾 2.1 Linux中, 子进程拷贝父进程哪些信息 2.2 Agent常驻进程选择& ...
- (译)Minimal Shader(最小的着色器)
(原文:https://en.wikibooks.org/wiki/Cg_Programming/Unity/Minimal_Shader) This tutorial covers the basi ...
- 网页转PDF作为邮件附件
Nuget 引入 OpenHtmlToPdf using (WebClient wc = new WebClient()) { wc.Encoding = Encoding.UTF8; wc.UseD ...
- 解决ueditor jquery javascript 取值问题
代码如下: var content = UE.getEditor('myEditor').getContent(); myEditor是ueditor 的名称name. 代码如下: <t ...