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时会转为红⿊树
Bug? 不存在的!

浙公网安备 33010602011771号