Java学习(87)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值取出来呢?都有哪几种取值的方法呢?下面就来一一介绍一下。

  1. 前置准备
    以HashMap为例,先为map存几个数据,以便于后边对map的遍历取值。

  1. 获取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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值