唠唠SE的集合-09——Map接口 原

9. Map

将键映射到值的对象,一个映射不能包含重复的键,但值可以重复。每个键最多只能映射到一个值。

Map是双列的;Collection是单列的

Map的键唯一;Collection的子体系Set是唯一的

Map集合的数据结构只针对键有效,跟值无关;Collection集合的数据结构是针对元素有效

1、添加:

1、V put(K key, V value) (可以相同的key值,但是添加的value值会覆盖前面的,返回值是前一个,如果没有就返回null)

2、putAll(Map<? extends K, ? extends V> m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。

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

public class Test {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("胖虎", 10);
        map.put("小夫", 99);
        map.put("大雄", 0);
        Map<String, Integer> map2 = new HashMap<>();
        map2.putAll(map);
    }
}

2、删除

1、remove() 删除关联对象,指定key对象

2、clear() 清空集合对象

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

public class Test {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("胖虎", 10);
        map.put("小夫", 99);
        map.put("大雄", 0);
        System.out.println(map.size()); // 3
        map.remove("胖虎");
        System.out.println(map.size()); // 2
        map.remove("胖虎");
        System.out.println(map.size()); // 2
        map.clear();
        System.out.println(map.size()); // 0
    }
}

3、获取

value get(key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返回的是null。

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

public class Test {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("胖虎", 10);
        map.put("小夫", 99);
        map.put("大雄", 0);
        
        Integer num1 = map.get("胖虎");
        Integer num2 = map.get("静香");
        System.out.println(num1); // 10
        System.out.println(num2); // null
    }
}

4、判断:

1、boolean isEmpty() 长度为0返回true否则false

2、boolean containsKey(Object key) 判断集合中是否包含指定的key

3、boolean containsValue(Object value) 判断集合中是否包含指定的value

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

public class Test {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("胖虎", 10);
        map.put("小夫", 99);
        map.put("大雄", 0);
        
        System.out.println(map.containsKey("胖虎")); // true
        System.out.println(map.containsValue("0")); // false
        System.out.println(map.containsValue(0)); // true
    }
}

5、长度:

int size() (前面已经有过了。。。)

迭代Map的方式:

1)使用Map.Entry<K, V> 与Map中的entrySet方法配合使用;2)增强for循环

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Test {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("胖虎", 10);
        map.put("小夫", 99);
        map.put("大雄", 0);
        
        //Iterator遍历
        Set<Map.Entry<String, Integer>> set = map.entrySet();
        Iterator<Map.Entry<String, Integer>> iterator = set.iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            System.out.println(entry.getKey() + "的成绩是:" + entry.getValue());
        }
        
        //增强for循环遍历
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + "的成绩是:" + entry.getValue());
        }
    }
}

不要忘记!不能在for循环里进行增删操作!

-------------------HashMap与TreeMap-----------------------

对于K来讲与Set对应的部分完全一致,故不再赘述。

不过对于HashMap来讲,这是个蛮深奥的东西,我会另起一篇,深扒源码!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

java基础学习_集合类03_用户登录注册案例(集合版)、Set集合、Collection集合总结_day17总结

============================================================================= ==...

10820
来自专栏曾大稳的博客

c++基础语法

注意:在开发过程中,cpp或者c会被编译为dll或者so供其调用者使用,一般把public的函数定义到h文件,不然调用者都不知道有哪些函数。

11130
来自专栏别先生

Map集合遍历的四种方式理解和简单使用

~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据...

24160
来自专栏Android开发指南

12:集合map、工具类

37080
来自专栏Python爱好者

Java基础笔记18

11170
来自专栏海说

16、Collection接口及其子接口Set和List(常用类LinkedList,ArrayList,Vector和Stack)

16、Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(...

23300
来自专栏LinkedBear的个人空间

唠唠SE的集合-01——Collection接口

当集合中存储的对象类型不同时,那么会导致程序在运行的时候的转型异常,所以jdk1.5加入了泛型机制。

7020
来自专栏AILearning

Map集合

Collection |--List:元素是有序的,元素可以重复,因为该集合体系有索引 |--ArrayList:底层的数据结构使用的是数据结构。特点:查询...

24560
来自专栏LanceToBigData

JavaSE集合(八)之Map

前面给大家介绍了集合家族中的Collection家族,这一篇给大家分享的是集合中的另一个家族就是Map家族。以前的时候学习Map的时候没有很认真的去学习,我觉得...

24080
来自专栏积累沉淀

反射封装request参数为对象

public class RequestUtil { public static<T> T parseRequset( HttpServletReq...

220100

扫码关注云+社区

领取腾讯云代金券