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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Page.RegisterStartupScript的使用方法

    Page.RegisterStartupScript的使用方法用于后台输出Javascript执行段打开一个新窗口:Page.RegisterStartupScript(“starup”,”<scriptlanguage=’javascript’>window.open(‘”+url+”‘,”,’toolbar=no,resizable=yes,scrollbars=yes’)</script>”)警告…

    2022年7月20日
    19
  • 邮件群发怎么设置_qq邮箱邮件怎么群发

    邮件群发怎么设置_qq邮箱邮件怎么群发大家都说30岁的女人一枝花,但是我就狠狠的被家里人催婚了。老妈让我去参加一个相亲,虽然心里不想去,但是为了让老妈开心,还是去参加了这场相亲局。当相亲那天来临时,我进入了跟人约好的咖啡馆,见面时寒暄了几句,就进入了无声的沉默,后来我们聊天时提起了我们的职业,我说我是外企HR,他跟我说他是会展公司的市场部部员,然后我问他工作具体是干什么的,然后他跟我说他是具体用邮件来开发客户,介绍会展公司承包的展览这种工作。我说好厉害的样子,你们是不是也需要邮件群发啊?最近我的邮箱有限,不是特别好用,刚好想换一个邮箱,你平常使

    2025年6月26日
    5
  • linux tar 绝对路径,tar打包使用绝对路径详解

    linux tar 绝对路径,tar打包使用绝对路径详解首先应该明确:*nix系统中,使用tar对文件打包时,一般不建议使用绝对路径。通常是在两台环境相似的机器上进行同步复制的时候,才有需要使用绝对路径进行打包。使用绝对路径打包时如果不指定相应的参数,tar会产生一句警告信息:”tar:Removingleading`/’frommembernames”,并且实际产生的压缩包会将绝对路径转化为相对路径。比如:root@queen~#t…

    2022年5月24日
    62
  • Typora的最后一个免费版本MD编辑器「建议收藏」

    Typora的最后一个免费版本MD编辑器「建议收藏」title:Typora的最后一个免费版本date:2022-05-1116:39:04tags:MDcategories:软件废话不多说,直接来我的仓库下载就可以了。利用Typora把图片添加到Hexo博客中安装插件。$npminstallhexo-renderer-marked–save2.再修改一下配置文件_config.yml,加入下面的配置。marked:prependRoot:truepostAsset:true3.在“Blog->s

    2022年9月23日
    2
  • 详细总结BS架构和CS架构

    详细总结BS架构和CS架构文章目录CS架构CS结构CS的优缺点BS架构BS结构BS的优缺点CS与BS的对比总结文章内容学习百度百科和博主“向上人生”CS架构客户端-服务器,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户端负责完成与用户的交互任务。CS结构在C/S结构中,应用程序分为两部分:服务器部分和客户端部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户端部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大

    2022年6月20日
    53
  • 2020手机的像素密度ppi排行_5g手机排行榜最新2020年11月5g手机性价比排行榜

    2020手机的像素密度ppi排行_5g手机排行榜最新2020年11月5g手机性价比排行榜注:本文转载自网络,不代表本平台立场,仅供读者参考,著作权属归原创者所有。我们分享此文出于传播更多资讯之目的。如有侵权,请在后台留言联系我们进行删除,谢谢!相信对很多朋友们来说,一款好用的5G智能手机是非常值得入手的,小编为大家带来最新的20年11月值得购买的性价比5G手机榜单,相信会给您更好的手机选购指导,为你带来更好的智能生活体验,有喜欢的朋友们一起来看看吧。1、一加8Pro性能一…

    2022年5月8日
    168

发表回复

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

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