JavaSE - 集合类-双列集合框架

JavaSE - 集合类-双列集合框架

本节学习目标:

  • Java双列集合框架结构;
  • 了解并掌握Map接口及其方法;
  • 了解并掌握Map的实现类及其方法;
  • 了解并掌握双列集合实现类的特性和优缺点。

1. 双列集合框架结构

双列集合指有两列数据的集合,双列集合中的每个数据被称为键值对(Entry)。

键值对由两个数据组成:

  • (Key):使用泛型K限制数据类型,键不可重复唯一),数据结构也只对键有效;
  • (Value):使用泛型V限制数据类型,值可以重复

Java双列集合框架由Map接口及其多种实现类构成:

双列集合类的继承树

2. Map 接口

Map接口为Java双列集合框架中的根接口,它预先定义了双列集合中的基本方法,双列集合中的常用方法如下:

方法 返回值类型 功能
size() int 返回Map集合中的键值对数量
isEmpty() boolean 返回Map集合是否为
containsKey(Object key) boolean 返回Map集合中是否存在指定
containsValue(Object value) boolean 返回Map集合中是否存在指定
get(Object key) V 返回Map集合中指定
put(K key, V value) V 向Map集合中添加指定键值对,并返回旧值(如果没有该键的映射则返回null
remove(Object key) V 移除Map集合中的指定键,并返回此键的
putAll(Map<? extends K, ? extends V> m) void 将指定Map集合的所有键值对添加至当前Map集合中
keySet() Set<K> Set集合形式返回Map集合的所有
values() Collection<V> Collection集合形式返回Map集合的所有
entrySet() Set<Entry<K, V>> Set集合形式返回Map集合的所有键值对
remove(Object key, Object value) boolean 指定键对应指定值时,移除此键值对,返回是否移除成功
replace(K key, V oldValue, V newValue) boolean 当键key对应值oldValue时,将值替换为newValue,返回是否替换成功
replace(K key, V value) V 将指定键的替换为指定值,并返回旧值(如果没有该键的映射则返回null
clear() void 移除Map集合中的所有键值对

Entry接口为Map接口中的内部接口,它预先定义了双列集合中键值对的基本方法,键值对的常用方法如下:

方法 返回值类型 功能
getKey() K 返回当前键值对的
getValue() V 返回当前键值对的
setValue(V value) V 将当前键值对的替换为指定值,并返回旧值

编写代码进行测试:

import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class Test {
   
    public static void main(String[] args) {
   
        Map<Integer, String> map = new HashMap<>();
        System.out.println("集合是否为空:" + map.isEmpty());
        map.put(1, "A");
        map.put(2, "A");
        map.put(3, "C");
        System.out.println("集合当前键值对:" + Arrays.toString(map.entrySet().toArray()));
        System.out.println("集合中键值对数量:" + map.size());
        System.out.println("集合中是否存在键2:" + map.containsKey(2));
        System.out.println("集合中是否存在值D:" + map.containsValue("D"));
        System.out.println("获取集合中键1的值:" + map.get(1));
        map.remove(1);
        System.out.println("移除集合中键为1的键值对:" + Arrays.toString(map.entrySet().toArray()));
        map.putAll(Collections.singletonMap(4, "D"));
        System.out.println("向集合中添加Map集合[4=D]:" + Arrays.toString(map.entrySet().toArray()));
        System.out.println("获取集合中的所有键:" + Arrays.toString(map.keySet().toArray()));
        System.out.println("获取集合中的所有值:" + Arrays.toString(map.values().toArray()));
        map.remove(2, "B");
        System.out.println("移除集合中键值对2=B:" + Arrays.toString(map.entrySet().toArray()));
        map.replace(2, "A", "B");
        System.out.println("将集合中键值对2=A的值替换为B:" + Arrays.<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值