欢迎光临
我们一直在努力

Java-Map类详解(1)

一、Map整体概述

1.什么是Map

java.util.Map 是双列集合,以键值对(Key-Value)形式存储数据: ● Key(键):唯一且不重复,类比字典的索引。 ● Value(值):可重复,类比字典的内容。 ● 一个Key对应唯一一个Value,键不能重复,值可以重复。 ● Map不属于 Collection 单列集合体系,是独立集合接口。

2.Map与Collection区别

集合类型存储结构元素特点继承体系
Collection 单列集合(单个元素) 单个对象,可重复/不可重复 单列根接口
Map 双列集合(键值对) K-V成对存储,K唯一 双列根接口

3.Map常用实现类

Java中Map三大类核心实现类,日常开发高频使用: ·HashMap:线程不安全,查询/增删效率高,无序(使用最多)。 ·LinkedHashMap:继承HashMap,有序(插入顺序)。 ·TreeMap:基于红黑树,按键自然排序/自定义排序。

二、Map核心特点

● 键(Key)唯一:重复键会覆盖原有Value。 ● 允许null值: ○ HashMap : 允许1个null键,多个null值。 ○ TreeMap :不允许null键(会空指针异常)。 ● 无索引:不能通过下标遍历,只能通过Key操作元素。 ● 元素成对存在。

三、Map常用API方法

1.添加/修改元素

  • V put(K key,V value) 功能:添加键值对;键重复时,新值覆盖旧值。并返回被覆盖的旧值。 返回值:旧Value;键不存在就返回null。

Map<String,Integer> map = new HashMap<>();
// 新增键值对,无旧值,返回null
Integer old1 = map.put("张三",20);
System.out.println(old1); // 输出null

// 键重复,新值覆盖旧值,返回被覆盖的旧值
Integer old2 = map.put("张三",22);
System.out.println(old2); // 输出:20
System.out.println(map); // 输出:{张三=22}

2.删除元素

  • V remove(Object key) 功能:根据键删除对应键值对。 返回值:返回被删除的Value;键不存在时,返回null。

Map<String,Integer> map = new HashMap<>();
map.put("李四",25);
// 根据键删除,返回对应value
Integer val = map.remove("李四");
System.out.println(val);
// 键不存在,返回null
Integer val2 = map.remove("王五");
System.out.println(val2);

  • boolean remove(Object key,Object value) 功能:键和值同时匹配时才删除。 返回值:true / false.

Map<String,Integer> map = new HashMap<>();
map.put("赵六",30);
// 键值匹配,删除成功,返回true
boolean b1 = map.remove("赵六",30);
System.out.println(b1); // 输出:true
// 键值不匹配,删除失败,返回false
boolean b2 = map,remove("赵六",31);
System.out.println(b2); // 输出:false

3.查询 / 判断方法

  • V get(Object key) 根据键获取对应值,键不存在返回null

Map<String,String> map = new HashMap<>();
map.put("name","java");
// 键存在,获取对应值
Stirng str1 = map.get("name");
System.out.println(str1); // 输出:java
// 键不存在,返回null
String str2 = map.get("age");
System.out.println(str2); // 输出:null

  • boolean containsKey(Object key) 判断集合是否包含指定键。

Map<String,Integer> map = new HashMap<>();
map.put("id",1001);
System.out.println(map.containsKey("id"); // 输出:true
System.out.println(map.containsKey("name"); // 输出:false

  • boolean containsValue(Object value) 判断集合是否包含指定值。

Map<String,Integer> map = new HashMap<>();
map.put("id",1001);
System.out.println(map.containsValue(1001)); //输出:true
System.out.println(map.containsValue(1002)); //输出:false

  • int size() 获取Map中键对值数量

Map<String,Integer> map = new HashMap<>();
map.put("a",1);
map.out("b",2);
System.out.println(map.size()); //输出:2

  • boolean isEmpty() 判断集合是否为空集合

Map<String,Integer> map = new HashMap<>():
System.out.println(map.isEmpty()); //输出:true
map.put("test",99);
System.out.println(map.isEmpty()); //输出:false

4.清空集合

  • void clear() 清空所有键值对

Map<String,Integer> = new HashMap<>();
map.put("x",10);
map.put("y",12);
map.clear();
System.out.println(map.size()); //输出:0
System.out.println(map.isEmpty()); //输出:true

赞(0)
未经允许不得转载:171主机测评 » Java-Map类详解(1)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址