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
<<天龙八部>>
{林平之=<<笑傲江湖>>, 虚竹=<<天龙八部>>, 岳不群=<<笑傲江湖>>, 段誉=<<天龙八部>>, 东方不败=<<笑傲江湖>>}
 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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