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


相关推荐

  • 数仓建模—数据安全「建议收藏」

    数仓建模—数据安全「建议收藏」数据安全差分隐私差分隐私是用来防范差分攻击的,差分隐私(英语:differentialprivacy)是密码学中的一种手段,旨在提供一种当从统计数据库查询时,最大化数据查询的准确性,同时最大限度减少识别其记录的机会比如有一群人出去聚餐,那么其中某人是否是单身狗就属于差分隐私。为了更形式化地描述差分隐私,我们需要先定义相邻数据集。现给定两个数据集D和D’,若它们有且仅有一条数据不一样,那我们就称此二者为相邻数据集。那么对于一个随机化算法(所谓随机化算法,是指对特定输入,该算法的输出不是固定值,而是服

    2022年5月21日
    48
  • ubuntu开机进入tty1_ubuntu tty模式

    ubuntu开机进入tty1_ubuntu tty模式1、一个作为宿主机的Linux;本文使用的是RedhatEnterpriseLinux5.4;2、在宿主机上提供一块额外的硬盘作为新系统的存储盘,为了降低复杂度,这里添加使用一块IDE接口的新硬盘;3、Linux内核源码,busybox源码;本文使用的是目前最新版的linux-2.6.34.1和busybox-1.16.1。说明:本文是一个stepbystep的…

    2022年8月12日
    5
  • MfC 进度条控件

    MfC 进度条控件

    2021年11月29日
    41
  • SFM算法流程

    SFM算法流程SFM算法流程1.算法简介SFM算法是一种基于各种收集到的无序图片进行三维重建的离线算法。在进行核心的算法structure-from-motion之前需要一些准备工作,挑选出合适的图片。首先从图片中提取焦距信息(之后初始化BA需要),然后利用SIFT等特征提取算法去提取图像特征,用kd-tree模型去计算两张图片特征点之间的欧式距离进行特征点的匹配,从而找到特征点匹配个数达到要

    2022年6月20日
    57
  • ue4在c盘的缓存_怎么清除ps在C盘的缓存

    ue4在c盘的缓存_怎么清除ps在C盘的缓存大家好,可能很多新手使用UE4的时候会发现C盘越来越小了,那是因为UE4引擎的缓存文件默认保存在C盘的缘故。下面来告诉大家怎么解决这个问题。概述一、出现的问题:UE4的缓存文件会导致C盘膨胀!二、解决的方式:请严格按照下列步骤来执行1.更改UE4的缓存路径2.删除UE4在C盘的缓存3.删除各个引擎版本SwarmAgent(联机构建)的缓存文件…

    2022年10月5日
    0
  • Java大数据方向学习路径导航[通俗易懂]

    Java大数据方向学习路径导航[通俗易懂]Java8各技术栈笔记与相关文档链接

    2022年5月27日
    28

发表回复

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

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