Java学习(87)Map概述、HashMap概述、案例:在字典中添加内容并显示(在HashMap中插入字符串对象)、Map中获取key-value值的方法
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Map概述、HashMap概述、案例在字典中添加内容并显示在HashMap中插入字符串对象、Map中获取key-value值的方法
Map概述
(1) Map中的数据是以键值对key-value的形式存储的
(2) key-value以Entry类型的对象实例存在
(3) 可以通过key值快速地查找value
(4) 一个映射不能包含重复的键key的值不能重复但是value的值可以重复即一个value可以对应多个key
(5) 每个键最多只能映射到一个值
(6) 在java.util包中
HashMap特点
(1) 基于哈希表的Map接口的实现
(2) 允许使用null值和null键
(3) key值不允许重复
(4) HashMap中的Entry对象是无序排列的
案例在字典中添加内容并显示在HashMap中插入字符串对象
功能描述
(1) 将单词以及单词的注释存储到HashMap中
(2) 显示HashMap中的内容
(3) 查找某个单词的注释并显示
添加数据
Map<key,value>
Map<String,String> animal=new HashMap<String,String>();
System.out.println("请输入三组单词对应的注释并存放到HashMap中");
Scanner console=new Scanner(System.in);
//添加数据
int i=0;
while(i<3){
System.out.println("请输入key值单词");
String key=console.next();
System.out.println("请输入value值注释");
String value=console.next();
animal.put(key, value);
i++;
}
打印输出value的值使用迭代器
//打印输出value的值直接使用迭代器
System.out.println("使用迭代器输出所有的value");
Iterator<String> it=animal.values().iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println();
打印输出value的值通过entrySet方法
entrySet()方法将HashMap中的键值对都放在entry的集合里面这样就可以通过遍历entry这个集合取出数据。
//打印输出key和value的值
//通过entrySet方法
System.out.println("通过entrySet方法得到key-value");
Set<Entry<String, String>> entrySet=animal.entrySet();
for(Entry<String, String> entry:entrySet){
System.out.print(entry.getKey()+"-");;
System.out.println(entry.getValue());
}
System.out.println();
注Set<Entry<String,String>>
表示两个泛型第一个泛型表示Set集合里面都是Entry类型的对象第二个泛型表示Entry里面的<key,value>对象都是<String,String>类型的。
通过单词找到注释并输出使用keySet方法
//通过单词找到注释并输出
//使用keySet方法
System.out.println("请输入要查找的单词");
String strSearch=console.next();
//1.取得keySet
Set<String> keySet=animal.keySet();
//2.遍历keySet
for(String key:keySet){
if(strSearch.equals(key)){
System.out.println("找到了"+"键值对为"+key+"-"+animal.get(key));
break;
}
}
在字典中添加内容并显示完整代码
package com.study.set;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class DictionaryDemo {
public static void main(String[] args) {
Map<String,String> animal=new HashMap<String,String>();
System.out.println("请输入三组单词对应的注释并存放到HashMap中");
Scanner console=new Scanner(System.in);
//添加数据
int i=0;
while(i<3){
System.out.println("请输入key值单词");
String key=console.next();
System.out.println("请输入value值注释");
String value=console.next();
animal.put(key, value);
i++;
}
//打印输出value的值直接使用迭代器
System.out.println("*****************************************");
System.out.println("使用迭代器输出所有的value");
Iterator<String> it=animal.values().iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println();
System.out.println("*****************************************");
//打印输出key和value的值
//通过entrySet方法
System.out.println("通过entrySet方法得到key-value");
Set<Entry<String, String>> entrySet=animal.entrySet();
for(Entry<String, String> entry:entrySet){
System.out.print(entry.getKey()+"-");;
System.out.println(entry.getValue());
}
System.out.println();
System.out.println("*****************************************");
//通过单词找到注释并输出
//使用keySet方法
System.out.println("请输入要查找的单词");
String strSearch=console.next();
//1.取得keySet
Set<String> keySet=animal.keySet();
//2.遍历keySet
for(String key:keySet){
if(strSearch.equals(key)){
System.out.println("找到了"+"键值对为"+key+"-"+animal.get(key));
break;
}
}
}
}
运行结果
请输入三组单词对应的注释并存放到HashMap中
请输入key值单词
cat
请输入value值注释
猫
请输入key值单词
pig
请输入value值注释
猪
请输入key值单词
dog
请输入value值注释
狗
*****************************************
使用迭代器输出所有的value
猫 狗 猪
*****************************************
通过entrySet方法得到key-value
cat-猫
dog-狗
pig-猪
*****************************************
请输入要查找的单词
pig
找到了键值对为pig-猪
Map中获取key-value值的方法
Map<K,V>集合是一种键值映射形式的集合。当调用`put(K key,V value)方法把数据存放到Map中后那么如何把Map中的key值和value值取出来呢都有哪几种取值的方法呢下面就来一一介绍一下。
- 前置准备
以HashMap为例先为map存几个数据以便于后边对map的遍历取值。
- 获取Map的key-value值。
获取Map的key-value值分别有以下几种方式使用时可以根据不同的场景选择对应的取值方式。
方法一
同时获取Map中的key值和value值。getKeyAndValue()
此方法通常用在要遍历展示这个map中所有的key和value
例如
在主方法中调用这个获取key和value的方法
控制台的显示如下
方法二
获取Map中的所有key值以及通过key值获取对应的value值。getKeys()
此方法可以用在一些需要判断是否是指定key的情况下获取该key对应的value。
例如
在主方法中调用这个获取key的方法
控制台显示如下
方法三
获取Map中的所有value值此方法通常用于只想要展示或获取所有的value值的情况。getValues()