集合---Map

一.Map接口的概述

  1. Map集合<K,V>:以一种键值对而存在
  2. Map集合:针对的是键有效,跟值没有关系,键是唯一的,值是可以重复的
  3. Map和Collection区别
    Map集合:是一种键值对的一种映射关系,键是唯一的,值是可以重复的!(双列集合)
    hashMap,treeMap是其子实现类
    Collection:集合框架的顶层的根接口,有两个子接口:List(元素可以重复),set(元素不可以重复的),单列集合
    ArrayList,Vector,LinkedList是List的子实现类
    treeSet,hashSet是Set的子实现类

二.Map集合的功能

添加功能:

  1. V put(K key,V value):添加元素(键和值的具体元素)
    其他用法:
    如果键是第一次存储的时候,返回值null
    如果键已经存在,再次存储的时候将第一次的值返回,并且后面的值覆盖掉前面的值
import java.util.HashMap;
import java.util.Map;

public class Demo1 {
    public static void main(String[] args) {
        //创建map集合对象
        Map<String,String> m = new HashMap<String,String>();

        //添加元素
        m.put("01", "王一");
        m.put("02", "王二");
        m.put("03", "王三");
        m.put("04", "王四");

        System.out.println(m);
    }
}

结果:
{01=王一, 02=王二, 03=王三, 04=王四}

删除功能:

  1. void clear():从此映射中移除所有映射关系(移出所有的键和值)
  2. V remove(Object key):删除键,返回值
import java.util.HashMap;
import java.util.Map;

public class Demo1 {
    public static void main(String[] args) {
        //创建map集合对象
        Map<String,String> m = new HashMap<String,String>();

        //添加元素
        m.put("01", "王一");
        m.put("02", "王二");
        m.put("03", "王三");
        m.put("04", "王四");

        //删除键,返回值
        System.out.println(m.remove("01"));
        System.out.println(m);

        //清除
        m.clear();
        System.out.println(m);
    }
}

结果:
王一
{02=王二, 03=王三, 04=王四}
{}

判断功能:

  1. boolean containsKey(Object key):判断当前Map集合中是否存在key:键
  2. boolean containsValue(Object value):判断当前Map姐中是否存在value值
public class Demo1 {
    public static void main(String[] args) {
        //创建map集合对象
        Map<String,String> m = new HashMap<String,String>();

        //添加元素
        m.put("01", "王一");
        m.put("02", "王二");
        m.put("03", "王三");
        m.put("04", "王四");

        System.out.println(m.containsKey("01"));
        System.out.println(m.containsValue("王五"));
    }
}

结果:
true
false

获取功能:

  1. V get(Object key):返回指定键所映射的值
  2. Set<K> keySet():获取所有的键的集合
  3. Collection<V> values():获取所有的值的
    集合
  4. Set<Map.Entry<K,V>> entrySet():获取键值对对象
import java.util.HashMap;
import java.util.Map;

public class Demo1 {
    public static void main(String[] args) {
        //创建map集合对象
        Map<String,String> m = new HashMap<String,String>();

        //添加元素
        m.put("01", "王一");
        m.put("02", "王二");
        m.put("03", "王三");
        m.put("04", "王四");

        System.out.println(m.get("01"));
        System.out.println(m.keySet());
        System.out.println(m.values());
        System.out.println(m.entrySet());
    }
}

结果:
王一
[01, 02, 03, 04]
[01=王一, 02=王二, 03=王三, 04=王四]

### 长度功能
1. int size():求集合长度

import java.util.HashMap;
import java.util.Map;

public class Demo1 {
    public static void main(String[] args) {
        //创建map集合对象
        Map<String,String> m = new HashMap<String,String>();

        //添加元素
        m.put("01", "王一");
        m.put("02", "王二");
        m.put("03", "王三");
        m.put("04", "王四");

        System.out.println(m.size());
    }
}

结果:
4

三.Map集合的遍历方式

  1. 方式一:
    1)获取所有的键的集合keySet()(这种比较常用)
    2)遍历键的集合,让键找值
    3)输出
  2. 方式二:
    1)获取键值对对象的集合
    2)遍历键值对对象的集合,
    3)通过键值对对象找键和值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class Demo1 {
    public static void main(String[] args) {
        //创建map集合对象
        Map<String,String> m = new HashMap<String,String>();

        //添加元素
        m.put("01", "王一");
        m.put("02", "王二");
        m.put("03", "王三");
        m.put("04", "王四");

        //方式一:
        //找键的集合
        Set<String> s = m.keySet();

        //通过键的集合找值
        for(String key : s){
            String value = m.get(key);

            //输出
            System.out.println(key+"="+value);
        }
        System.out.println("-----------");

        //方式二:
        //获取键值对对象
        Set<Entry<String, String>> enterySet = m.entrySet();

        for(Entry<String,String> e : enterySet){
            //获取键
            String k = e.getKey();

            //获取值
            String v = e.getValue();

            System.out.println(k+"="+v);
        }
    }
}

结果:
01=王一
02=王二
03=王三
04=王四
-----------
01=王一
02=王二
03=王三
04=王四
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值