Java-Map用法简介
来源:互联网 发布:电信光猫有几个端口 编辑:程序博客网 时间:2024/05/16 16:23
本文将对Map接口进行一些简单介绍,包括继承关系、常用方法,还有遍历。
Java API - Map:http://docs.oracle.com/javase/8/docs/api/java/util/Map.html
Java API中对Map的描述
l Map是一个能将键(keys)映射到值(values)的对象,一个Map对象不能包含重复的键,但是可以包含重复的值。
l Map接口提供了三种查看方式,分别是a set ofkeys, collection of values, or set of key-value mappings。这里没有进行翻译,因为我觉得这里翻译不太好。set在这里指的是Set接口的对象,collection指的是Collection接口的对象。在后面方法介绍的时候会讲。
一、继承关系
其实Java中Map的继承关系远比这复杂,不过大部分情况这个图很够用了。常用的就是HashMap(无序)和TreeMap(有序)
二、常用方法简介
1. clear()
很常规的清空方法
2. containsKey(Object key)
判断一个Map对象是否包含该键
3. containsValue(Object value)
判断一个Map对象是否包含该值
4. entrySet()
一种Map查看方式,返回的是Set<Map.Entry<K,V>>,其中Map.Entry<K,V>表示Java键值对,一般用来遍历,而且效率高于keySet()+get配合使用。
5. forEach(BiConsumer<? superK,? super V> action)
forEach方法,一般用来遍历,如果map为空会抛出空异常,使用前最好判空
6. get(Object key)
由键获取值的方法
7. isEmpty()
判空
8. keySet()
返回键的集合表示,因为map中的键是唯一且无序的,所以用Set表示
9. put(K key, V value)
添加方法,类似Collection.add()
10. putAll(Map<? extends K,?extends V> m)
添加方法,类似Collection.addAll()
11. remove(Object key)
remove方法,只需要键匹配就执行操作
12. remove(Object key, Objectvalue)
remove方法,需要键和值同时匹配才执行操作
13. size()
返回键值对的个数,很普通的size方法
14. values()
返回类型是Collection<V>,因为值可能相同,所以不能像key那样用Set方法
三、Map的遍历
Map的遍历可以分为四种,因为4=2*2,在遍历方式中可以用foreach和迭代器两种,获取键值对可以用entrySet和keySet+ get()。建议采用foreach和entrySet方法(示例中第一种方法),最简洁而且效率最高。
直接上代码:
import java.util.*;public class JavaAPIMap { public static void main(String[] args) { //新建一个空的Map Map<String, Integer> map = new HashMap<String, Integer>(); //添加值 map.put("a", 1); map.put("b", 2); map.put("c", 3); //1. foreach 配合 entrySet() for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } System.out.println("------------------"); //2. foreach配合keySet()和get() for (String key : map.keySet()) { System.out.println("Key = " + key + ", Value = " + map.get(key)); } System.out.println("------------------"); //3. 迭代器Iterator配合entrySet() Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<String, Integer> entry = iterator.next(); System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } System.out.println("------------------"); //4. 迭代器Iterator配合keySet()和get() Iterator<String> keyIterator = map.keySet().iterator(); while (keyIterator.hasNext()){ String key = keyIterator.next(); System.out.println("Key = " + key + ", Value = " + map.get(key)); } }}
程序结果:
Key = a,Value = 1
Key = b,Value = 2
Key = c,Value = 3
------------------
Key = a,Value = 1
Key = b,Value = 2
Key = c,Value = 3
------------------
Key = a,Value = 1
Key = b,Value = 2
Key = c,Value = 3
------------------
Key = a,Value = 1
Key = b,Value = 2
Key = c, Value = 3
- Java-Map用法简介
- map简介以及用法
- map用法简介
- C++ STL <map> 用法简介
- set与map用法简介
- C++ std::map用法简介
- Java Map接口简介
- Java Map接口简介
- Java Map用法
- Java Map的用法
- java map的用法
- Java Map用法
- java map的用法
- Java Map用法
- java map 的用法
- java Map用法
- Java map用法
- java中的Map用法
- gcc g++区别与联系
- 机房重构--注册
- C++ set/multiset
- Android设置数据库的路径
- android 官方mvp框架优化:lifecycle-mvp,像前端那样组合式写页面
- Java-Map用法简介
- ISE新建项目报错解决方法
- 【分布式1】 分布式架构
- linux内存管理之内存管理区
- 读书笔记
- LeetCode 59. Spiral Matrix II
- Mongo 聚合框架-Aggregate(三)
- 147. Insertion Sort List
- 《微服务架构与实践》读书笔记