文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 一、Map集合的特点
- 二、HashMap
- 三、问题描述
- 1.引入库
- 2.读入数据
- 结果展示:
一、Map集合的特点
- Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
- Map集合中的元素,key和value的数据类型可以相同,也可以不同
- Map集合中的元素,key是不允许重复的, value是可以重复的
- Map集合中的元素, key和value是一—对应
实现不是同步的–>多线程:效率高,速度快
java.util.HashMap
HashMap集合的特点∶
- HashMap集合底层是哈希表:查询的速度特别的快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表的长度超过8):提高查询的速度 - hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
问题:用户输入一个字符串,打印出每个字符的个数。
1.引入库代码如下(示例):
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
2.读入数据
代码如下(示例):
/**
* 功能描述:用户输入一个字符串,打印出每个字符的个数。
*
* @Author: wang
* @Date: 2022/4/25 18:58
*/
public class Frequency {
public static void main(String[] args) {
doFrequency();
}
private static void doFrequency() {
HashMap<Character, Integer> map = new HashMap<>();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.nextLine();
for (int i = 0; i < str.length() ; i++) {
char c = str.charAt(i);
//System.out.println(c);
if(map.get(c)==null){
map.put(c,1);
}
else {
Integer value = map.get(c);
value++;
map.put(c,value);
}
}
System.out.println(map);
Set<Character> set = map.keySet();
for (Character key : set) {
Integer value = map.get(key);
System.out.println(key+"="+value);
}
}
}
结果展示:
请输入一个字符串:
aacdacdde
{a=3, c=2, d=3, e=1}
a=3
c=2
d=3
e=1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)