Java进阶核心之集合框架Map下集·18

  • 常见的Map API语法

常见的Map API语法
package chapter8_4;

import java.util.*;

/**
 * @ClassName: MapTest
 * @Author: mr.chen
 * @Date:2021/5/2
 * @Version: 1.0
 **/
public class MapTest {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
//        {B转转=对象6, C转转=对象4, G转转=对象1, D转转=对象3, A陈煜燊=对象2}
//        TreeMap<String,String> map = new TreeMap<>();
//        {A陈煜燊=对象2, B转转=对象6, C转转=对象4, D转转=对象3, G转转=对象1}
//        LinkedHashMap <String,String> map = new LinkedHashMap<>();
//        {A陈煜燊=对象2, D转转=对象3, G转转=对象1, B转转=对象6, C转转=对象4}
        // 往map里面放key-value下
        map.put("A陈xx", "对象2");
        map.put("D转转", "对象3");
        map.put("G转转", "对象1");
        map.put("B转转", "对象6");
        map.put("C转转", "对象4");

        System.out.println(map);
        System.out.println("==============================");

        // 根据key获取value
        String n = map.get("陈xx");
        System.out.println(n);

        //判断是否包含某个key
        boolean isContains = map.containsKey("陈xx");
        System.out.println(isContains);

        // 返回map的元素数量
        int size = map.size();
        System.out.println(size);

        //清空map容器
        map.clear();

        //获取所有value的集合
        Collection<String> collection = map.values();
        System.out.println(collection);

        //获取所有key的集合
        Set<String> set = map.keySet();
        System.out.println(set);

        //返回⼀个Set集合,集合的类型为Map.Entry , 是Map声明的⼀个内部接⼝,接⼝为泛型,定义为Entry<K,V>,
        //它表示Map中的⼀个实体(⼀个key-value对),主要有getKey(),getValue⽅法
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry entry : entrySet) {
            System.out.println("key: " + entry.getKey() + ",values: " + entry.getValue());
        }
        //判断map是否为空
        boolean isEmpty = map.isEmpty();
        System.out.println(isEmpty);
    }
}

Map⾯试题

HashMap和TreeMap应该怎么选择

HashMap可实现快速存储和检索,但缺点是包含的元素是⽆序的,适⽤于在Map中插⼊、删除和定位元素.
TreeMap能便捷的实现对其内部元素的各种排序,但其⼀般性能⽐HashMap差,适⽤于按⾃然顺序或⾃定义顺序遍历键(key)
jdk1.7和jdk1.8中HashMap的主要区别
底层实现由之前的 “数组+链表” 改为 “数组+链表+红⿊树”
什么时候开始转变
当链表节点较少时仍然是以链表存在,当链表节点较多时,默认是⼤于8时会转为红⿊树

posted @ 2022-01-03 22:52  Admin_sys  阅读(31)  评论(0编辑  收藏  举报