Java集合框架--Map接口概述 & Map接口使用 & entrySet和keySet()遍历map谁的效率更高?
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合框架--Map接口概述 & Map接口使用 & entrySet和keySet()遍历map谁的效率更高?相关的知识,希望对你有一定的参考价值。
1. Map接口概述
特点:
存储一对数据(Key-Value),无序、无下标,键不可重复。
常用方法:
- V put(K key,V value)//将对象存入到集合中,关联键值。key重复则覆盖原值。
- Object get(Object key)//根据键获取相应的值。
- keySet//返回所有的key
- Collection values()//返回包含所有值的Collection集合。
- entrySet<Map.Entry<K,V>>//键值匹配的set集合
api文档
api文档方法摘要:
2. Map接口使用
示例代码:
/**
* Map接口的使用
* 特点:1.存储键值对 2.键不能重复,值可以重复 3.无序
*/
public class Demo1 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
//1.添加元素
map.put("China", "中国");
map.put("American", "美国");
map.put("Britain", "英国");
map.put("Canada", "加拿大");
map.put("Spain", "西班牙");
map.put("Germany", "德国");
System.out.println("map集合内容为:\\n" + map.toString());
//2.删除元素
map.remove("America");
System.out.println("删除了American后map集合内容为:\\n" + map.toString() + "\\n");
//3.遍历
//3.1 使用keySet();
System.out.println("----------------使用keySet()遍历---------------------");
for (String key : map.keySet()) {
System.out.println(key + " " + map.get(key));
}
//3.2 使用entrySet();效率较高
System.out.println("----------------entrySet()遍历---------------------");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
System.out.println("\\nmap的key是否包含了China: " + map.containsKey("China"));
System.out.println("map的value是否包含了China: " + map.containsValue("中国"));
}
}
运行结果:
3. entrySet和keySet()遍历map谁的效率更高?
原理:
结论:
entrySet的效率高于keySet。
原因:
keySet遍历后只拿到了key,要继续拿到value,每拿一次value都需要重新遍历一个map。而entrySet可以直接一次拿完key和value,所以entrySet的效率高于keySet。
以上是关于Java集合框架--Map接口概述 & Map接口使用 & entrySet和keySet()遍历map谁的效率更高?的主要内容,如果未能解决你的问题,请参考以下文章
Java中的集合(List,Set,Map)(知识点详解)(看完这篇就够了)