【Java】---Map体系集合:Map接口及常用方法

本文详细介绍了JavaMap接口的概念,体系结构以及常用的put、putAll、remove、clear等方法的使用示例,展示了Map集合如何存储键值对并处理键的唯一性。
摘要由CSDN通过智能技术生成

java之Map接口及常用方法



一、什么是Map体系集合?

1.1 概念

Map体系集合,是一种区别于Collection体系的集合。该体系下的任何数据,存储都是由键值对组成。
如果未了解过Collection体系的集合,请移步:java之集合–Collection父接口及其方法
特点:

  1. 存储的数据由两部分组成。
  2. 不能重复,值可以重复。
  3. 若存储了键相同的元素,会覆盖掉键原先所对应的值。
  4. Map体系下的集合,无序无下标
  5. 作为集合的第二种体系,Map体系也是只存储对象,基本类型将自动装箱,无论键还是值。
  6. Map体系可以用null来表示键和值。null的hash值为0.

由于Map是接口,无法直接创建对象,所以只能通过向上转型的方式来创建对象,以其实现类HashMap为例:

Map map = new HashMap();//通过向上转型的方式创建对象

1.2 体系结构

Map体系结构


二、常用方法

Map接口定义的方法,其实现者和继承者都会继承,且作用一致。

2.1 put(Object key,Object value)

作用:在集合中添加键值对key:value,如有相同键的话会覆盖。

代码演示:

Map map = new HashMap();
map.put(1,"张三");//存储键值对1和"张三"
map.put(2,"李四");
map.put(3,"王五");
System.out.println(map);
map.put(2,"赵六");//2为已经存储的键,会将值覆盖。
System.out.println(map);

运行结果:

{1=张三, 2=李四, 3=王五}
{1=张三, 2=赵六, 3=王五}

2.2 putAll(Map map)

作用:将集合map中的所有元素添加到本集合中,键重复的元素将覆盖。

代码演示:

Map map1 = new HashMap();
Map map2 = new HashMap();
map1.put(1,"张三");
map1.put(2,"李四");
map1.put(3,"王五");
map1.put(4,"赵六");
System.out.println("map1中的元素:");
System.out.println(map1);
map2.put(1,"手机");
map2.put(5,"电脑");
map2.put(6,"平板");
map2.put(3,"微信");
System.out.println("map2中的元素:");
System.out.println(map2);
System.out.println("在map1中添加map2所有元素后:");
map1.putAll(map2);
System.out.println(map1);

运行结果:

map1中的元素:
{1=张三, 2=李四, 3=王五, 4=赵六}
map2中的元素:
{1=手机, 3=微信, 5=电脑, 6=平板}
在map1中添加map2所有元素后:
{1=手机, 2=李四, 3=微信, 4=赵六, 5=电脑, 6=平板}

2.3 remove(Object key)

作用:删除集合中键key所对应的键值对;如果key不存在,返回null。
返回值类型:Object

代码演示:

Map map = new HashMap();
map.put(1,"苹果");
map.put(2,"香蕉");
map.put(3,"菠萝");
map.put(4,"菠萝");//键不可以重复,值可以重复
System.out.println(map);
System.out.println("删除的元素:");
System.out.println(map.remove(3));//删除键3所对应的键值对
System.out.println("删除后:");
System.out.println(map);
System.out.println("不存在的键:");
System.out.println(map.remove(5));

运行结果:

{1=苹果, 2=香蕉, 3=菠萝, 4=菠萝}
删除的元素:
菠萝
删除后:
{1=苹果, 2=香蕉, 4=菠萝}
不存在的键:
null

2.4 clear()

作用:清空集合中的元素
返回值类型:void(无)

代码演示:

Map map = new HashMap();
map.put(1,"张三");
map.put(2,"李四");
map.put(3,"王五");
System.out.println(map);
map.clear();
System.out.println(map);

运行结果:

{1=张三, 2=李四, 3=王五}
{}

2.5 isEmpty()

作用:判断集合是否为空,如果是,返回true,否则返回false
返回值类型:boolean

Map map = new HashMap();
map.put(1,"张三");
System.out.println("map空不空?");
System.out.println(map.isEmpty());
map.clear();//清空map中的元素
System.out.println("map空不空?");
System.out.println(map.isEmpty());

运行结果:

map空不空?
false
map空不空?
true

2.6 keySet()

作用:获取集合中所包含的所有键,并将其作为Set类型返回。
返回值类型:Set

代码演示:

Map map = new HashMap();
map.put(1,"张三");
map.put(2,"李四");
map.put(3,"王五");
map.put(4,"赵六");
System.out.println(map.keySet());//返回键的Set集合
Set set = map.keySet();//可以使用Set引用创建对象
System.out.println(set);

运行结果:

[1, 2, 3, 4]
[1, 2, 3, 4]

2.7 get(Object key)

作用:通过键key,返回集合中对应键的值;如果键值不存在,返回null
返回值类型:Object

代码演示:

Map map = new HashMap();
map.put(1,"哈密瓜");
map.put(2,"西瓜");
System.out.println(map.get(1));
System.out.println(map.get(2));
System.out.println(map.get(3));

运行结果:

哈密瓜
西瓜
null

2.8 values()

作用:获取集合中所包含的所有值,并将其作为Collection类型返回。
返回值类型:Collection

代码演示:

Map map = new HashMap();
map.put(1,"苹果");
map.put(2,"张三");
map.put(3,"手机");
map.put(4,"卫星");
System.out.println(map.values());//返回Collection类型数据
Collection collection = map.values();//可以使用Collection引用创建对象
System.out.println(collection);

运行结果:

[苹果, 张三, 手机, 卫星]
[苹果, 张三, 手机, 卫星]

2.9 containsKey(Object key)

作用:判断键key在集合中是否存在,是返回true,否则返回false。
返回值类型:boolean

代码演示:

Map map = new HashMap();
map.put(1,"手机");
map.put(2,"电脑");
map.put(3,"平板");
System.out.println(map.containsKey(2));
System.out.println(map.containsKey(4));

运行结果:

true
false

2.10 containsValue(Object value)

作用:判断值value在集合中是否存在,是返回true,否则返回false。
返回值类型:boolean

代码演示:

Map map = new HashMap();
map.put(1,"张三");
map.put(2,"李四");
map.put(3,"王五");
System.out.println(map.containsValue("李四"));
System.out.println(map.containsValue("赵六"));

运行结果:

true
false

2.11 entrySet()

作用:获取集合中所包含的所有键值对,并将其作为Set的实现类Map.Entry返回。
返回值类型:Map.Entry

代码演示:

Map map = new HashMap();
map.put(1,"张三");
map.put(2,"手机");
map.put(3,"哈密瓜");
map.put(4,"时代周刊");
map.put(5,"金箍棒");
System.out.println(map.entrySet());//返回Map.Entry类型数据
Set set = map.entrySet();//可以使用Set引用创建对象
System.out.println(set);

运行结果:

[1=张三, 2=手机, 3=哈密瓜, 4=时代周刊, 5=金箍棒]
[1=张三, 2=手机, 3=哈密瓜, 4=时代周刊, 5=金箍棒]


总结

本文章介绍了Map体系集合中,Map接口和该体系的常用方法,下一次会讲解Map的各个实现类。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值