Map集合实例练习一

Map集合实例练习一    java基础是关键,当你掌握一定的知识量的时候,但感觉其实还是基础是关键,很多框架都是固定的,只要掌握框架的配置,再加基础,相信你也就可以入这行了。选择有很多,要么及早的地放弃,不要浪费青春时光与金钱,要么坚持不放弃,一直干下去….失败不可怕,可怕的是不敢面对失败。好了,加油!!!引导语,就简单的说到这里。      Map概念Map集合的特点,如是否可重复,…

大家好,又见面了,我是你们的朋友全栈君。

        java基础是关键,当你掌握一定的知识量的时候,但感觉其实还是基础是关键,很多框架都是固定的,只要掌握框架的配置,再加基础,相信你也就可以入这行了。选择有很多,要么及早的地放弃,不要浪费青春时光与金钱,要么坚持不放弃,一直干下去….失败不可怕,可怕的是不敢面对失败。好了,加油!!!引导语,就简单的说到这里。        

 Map概念

Map集合的特点,如是否可重复,是否有序仅作用在键上,如HashMap集合的键不得重复,值可以重复。

我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。

  • Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。

  • Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。

  • Collection中的集合称为单列集合,Map中的集合称为双列集合。

  • 需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

  • Map中常用的集合为HashMap集合、LinkedHashMap集合。Hashtable也是Map集合的一种已被HashMap取代。

Map接口中常用集合概述

通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。

  • HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

  • LinkedHashMap<K,V>:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

  • 注意:Map接口中的集合都有两个泛型变量<K,V>,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量<K,V>的数据类型可以相同,也可以不同。

 

1.1.3 Map的常用方法

Map(HashMap)的使用:创建对象时加入两个泛型。

Map<k,v>

    key – 此映射所维护的键的类型

    value – 映射值的类型

  • put方法:将指定的键与值对应起来,并添加到集合中

    • 方法返回值为键所对应的值

               使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中;

               使用put方法时,若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的值,替换成指定的新值。

  • get方法:获取指定键(key)所对应的值(value)

  • remove方法:根据指定的键(key)删除元素,返回被删除元素的值(value)。

简单的map集合的Put方法实例代码,供新手练习参考使用:

package cn.map2;

import java.util.HashMap;
import java.util.Map;

public class MapDemo1 {
	public static void main(String[] args) {
		//创建一个hashMap集合
		Map<String, String> map1 = new HashMap<String,String>();
		map1.put("小明", "我是湖南人");
		map1.put("小红", "我是湖北人");
		map1.put("小李", "我是北京人");
		map1.put("小东", "我是上海人");
		System.out.println(map1);
		String value=map1.remove("小东");
		System.out.println(value);
		System.out.println(map1);
		
	}
}

以上输出结果 为:

{小李=我是北京人, 小明=我是湖南人, 小东=我是上海人, 小红=我是湖北人}
我是上海人
{小李=我是北京人, 小明=我是湖南人, 小红=我是湖北人}

 

简单的map集合的Put方法实例代码2,供新手练习参考使用:

package cn.map2;

import java.util.HashMap;
import java.util.Map;

public class Demo2 {
	public static void main(String[] args) {
		//创建HashMap集合对象
	Map<String,String> map1  =	new HashMap<String,String>();
	//添加元素
	map1.put("张三", "美国人");
	map1.put("李四", "英国人");
	map1.put("王五", "日本人");
	map1.put("赵六", "中国人");
	String a = map1.put("张三", "中国人");   // 如果键 重复了, 值会被替换.
	System.out.println(a);
	System.out.println(map1);
	}
}

以上输出结果:

美国人
{赵六=中国人, 张三=中国人, 李四=英国人, 王五=日本人}

 

简单的map集合的Get方法实例代码3,供新手练习参考使用:

package cn.map2;

import java.util.HashMap;
import java.util.Map;

public class Demo3 {
	public static void main(String[] args) {
		// 创建 person 对象
		Map<String, String> person = new HashMap<>();
		// 添加 元素 put 方法
		person.put("唐三藏", "师傅"); // 
		person.put("孙悟空", "大师兄"); // 
		person.put("猪八戒", "二师兄");
		person.put("沙悟净", "三师弟");
		person.put("白龙马", "四师弟");
		//get值
		String value = person.get("唐三藏");
		System.out.println("唐三藏的值value1="+value);
		String value2 = person.get("孙悟空");
		System.out.println("孙悟空的值value2="+value2);
		String value3 = person.get("沙悟净");
		System.out.println("沙悟净的值value3="+value3);
	}
}

输出结果是:

唐三藏的值value1=师傅
孙悟空的值value2=大师兄
沙悟净的值value3=三师弟

其他方法:

  • void clear() 从此映射中移除所有映射关系(可选操作)。 

  • boolean containsKey(Object key)  如果此映射包含指定键的映射关系,则返回 true。

  • boolean containsValue(Object value)   如果此映射将一个或多个键映射到指定值,则返回 true。

  • boolean isEmpty()  如果此映射未包含键-值映射关系,则返回 true。 

  • V remove(Object key)  如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。 

  • int size() 返回此映射中的键-值映射关系数。

简单的map集合的其他方法实例代码4,供新手练习参考使用:

package cn.map2;

import java.util.HashMap;

/*

 * 其他方法  

 void clear() 从此映射中移除所有映射关系(可选操作)。

 boolean containsKey(Object key)  如果此映射包含指定键的映射关系,则返回 true。

 boolean containsValue(Object value)   如果此映射将一个或多个键映射到指定值,则返回 true。

 boolean isEmpty()  如果此映射未包含键-值映射关系,则返回 true。

 V remove(Object key)  如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

 int size() 返回此映射中的键-值映射关系数。

 */
public class Demo4 {
	public static void main(String[] args) {
		//创建hashMap
		HashMap<String, String> hashMap = new HashMap<>();
		// 保存角色名字和书名.   
		 hashMap.put("东方不败", "<<笑傲江湖>>");
		 hashMap.put("岳不群", "<<笑傲江湖>>");
		 hashMap.put("林平之", "<<笑傲江湖>>");
		 hashMap.put("乔峰", "<<天龙八部>>");
		 hashMap.put("段誉", "<<天龙八部>>");
		 hashMap.put("虚竹", "<<天龙八部>>");
		 System.out.println(hashMap.containsKey("乔峰"));
		 System.out.println(hashMap.containsKey("梅超风"));
		 System.out.println("=======");
		 System.out.println(hashMap.isEmpty());
		 //hashMap.clear();
		// System.out.println(hashMap);
		 String remove = hashMap.remove("乔峰");
		 System.out.println(remove);
		 System.out.println(hashMap);
		}
	}

以上输出结果:

true
false
=======
false
<<天龙八部>>
{林平之=<<笑傲江湖>>, 虚竹=<<天龙八部>>, 岳不群=<<笑傲江湖>>, 段誉=<<天龙八部>>, 东方不败=<<笑傲江湖>>}
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139288.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • FileZilla出现Failed to convert command to 8 bit charset 

    FileZilla出现Failed to convert command to 8 bit charset 

    2021年9月24日
    52
  • 手把手教你用UNet做医学图像分割系统

    手把手教你用UNet做医学图像分割系统兄弟们好呀,这里是肆十二,这转眼间寒假就要过完了,相信大家的毕设也要准备动手了吧,作为一名大作业区的UP主,也该蹭波热度了,之前关于图像分类和目标检测我们都出了相应的教程,所以这期内容我们搞波新的,我们用Unet来做医学图像分割。我们将会以皮肤病的数据作为示范,训练一个皮肤病分割的模型出来,用户输入图像,模型可以自动分割去皮肤病的区域和正常的区域。B站讲解视频:CSDN博客:代码地址:unet_42:基于Unet的医学影像分割系统(gitee.com)处理好的数据集和训练好的模型:更多相关的

    2022年6月15日
    23
  • 键盘钩子入门

    键盘钩子入门1钩子   钩子是操作系统消息处理的一种机制。通过钩子,应用程序可以安装一个钩子回调过程让系统调用,从而监视系统中的消息队列。在这些消息到达目标窗口之前对这些消息进行处理。1.1钩子函数1)钩子函数会降低操作系统的性能,因为它增加系统处理每一个消息的开销。所以用户除非必须才要安装钩子,而且还要尽可能早地去除钩子。2)操作系统支持多种类型的钩子,每种类型都提供了它特有的消息处理机制。3)对…

    2022年4月28日
    155
  • 北京儿研所电话预约挂号流程详解

    北京儿研所电话预约挂号流程详解北京儿童医院电话预约挂号流程详解  北京儿童医院以其权威的学科地位、优秀的医师团队及先进的技术设备吸引来自全国各地的患儿前来就诊,与此同时,挂号难就成了患儿家长及院方最头疼也最无奈的问题,门诊楼扩建的

    2022年8月6日
    6
  • 天涯共此双11——天猫升级港澳台“购物天堂”

    天涯共此双11——天猫升级港澳台“购物天堂”香港北区上水60多年的老字号正和隆酱油没想过会出名。这家专注服务街坊的小店不在乎“酱香巷子深”,门店一半是透明及地的塑胶门帘,一半是一块块拼接起来的黄色纸板箱。来的都是熟客,所谓收银台就是个铅桶,顾客要付钱就把铅桶拉下来,付钱、找零,再把铅桶放上去。这是父辈们持续了半个多世纪的生意。到了店主女儿这里,事情开始改变。她赶时髦,在店里放了有支付宝二维码的蓝白…

    2022年10月5日
    3
  • VMware安装Centos7超详细过程(图文并茂)

    VMware安装Centos7超详细过程(图文并茂)

    2021年8月3日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号