Map集合 叁歲伎倆 2022-07-12 04:47 275阅读 0赞 # Map # Map接口是一种双列集合,它的每个元素都包含一个键对象Key和一个值对象Value,键和值对象之间存在一种对应关系,称为映射。一个映射不能包含重复的键,每个键最多只能映射到一个值。从Map集合中访问元素时,只要指定了Key,就能找到对应的Value。 Set底层依赖的是Map 1.V put(K key,V value):添加元素。如果键是第一次存储,就直接存储元素,返回null。如果键不是第一次存储,就用值把以前的值替换掉,返回以前的值。 2.void clear():移除所有键值对元素 3.V remove(Object key):根据键删除键值对元素,并把值返回 4.boolean containsKey(Object key):判断集合是否包含指定的键 5.boolean containsValue(Object Value):判断集合是否包含指定的值 6.boolean isEmpty():判断集合是否为空 7.`Set<Map.Entry<E,V>> entrySet()`:返回此映射中包含的映射关系的Set视图 8.V get(Object key):根据键获取值 9.`Set<K> keySet()`:获取集合中所有键的集合 10.`Collection<V> values()`:获取集合中所有值的集合 11.int size():返回集合中键值对的个数 ## 遍历 ## 第一种方式就是先遍历Map集合中所有的键,再根据键获取相应的值。 package com.first; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class HelloWorld { public static void main(String[] args) { Map<String, Integer> map=new HashMap<>(); map.put("张三", 23); map.put("李四", 24); map.put("王五", 25); map.put("赵六", 26); Set<String> keySet=map.keySet(); Iterator<String> it=keySet.iterator(); while (it.hasNext()) { String key = (String) it.next(); Integer value=map.get(key); System.out.println(key+"="+value); } } } 运行结果为 赵六=26 张三=23 李四=24 王五=25 用增强for循环可简写为 for(String key:map.keySet()){ System.out.println(key+"="+map.get(key)); } 第二种方式是先获取集合中的所有映射关系,然后从映射关系中取出键和值。 Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); Iterator<Map.Entry<String, Integer>> it = entrySet.iterator(); while (it.hasNext()) { // 获取每一个Entry对象 Map.Entry<String, Integer> en = it.next(); // 父类引用指向子类对象 // Entry<String, Integer> en = it.next(); //直接获取的是子类对象 String key = en.getKey(); // 根据键值对对象获取键 Integer value = en.getValue(); // 根据键值对对象获取值 System.out.println(key + "=" + value); } 首先调用Map对象的entrySet方法获得存储在Map中所有映射的Set集合,这个集合中存放了Map.Entry类型的元素(Entry是Map接口内部类),每个Map.Entry对象代表Map中的一个键值对,然后迭代Set集合,获得每一个映射对象,并分别调用映射对象的getKey和getValue方法获取键和值。 用增强for循环可简写为 for(Entry<String, Integer> en : map.entrySet()) { System.out.println(en.getKey() + "=" + en.getValue()); } 第二种方法的效率更高。 # HashMap和Hashtable # 共同点:底层是哈希算法,都是双列集合 区别: * Hashtable是线程安全的,效率低(目前基本被HashMap所取代),JDK1.0版本。HashMap线程不安全,效率高,JDK1.2版本 * Hashtable不可以存储null键和null值。HashMap可以存储null键和null值。 # LinkedHashMap # HashMap集合迭代出来元素的顺序和存入的顺序是不一致的。如果想让这两个顺序一致,可以使用LinkedHashMap类,和LinkedList一样也使用双向链表来维护内部元素的关系,使Map元素迭代的顺序和存入的顺序一致。 # Properties # * String getProperty(String key) * String getProperty(String key,String defaultValue) * void load(Reader reader):按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。 Properties主要用来存储字符串类型的键和值,在实际开发中使用Properties集合来存取应用的配置项。 # TreeMap # TreeMap通过二叉树的原理来保证键的唯一性,与TreeSet集合存储的原理一样,TreeMap中所有键是按照某种顺序排列的。
相关 java——集合——Map集合——Map集合的概述 ![785798b9f16983d2b4fa11f74c94630b.png][] ![c245c791968681286d734a72d714b18a.png][] [ 快来打我*/ 2024年03月31日 09:42/ 0 赞/ 119 阅读
相关 Map集合 Map集合没有继承 Collection接口,其提供的是key到value的映射。Map中不能包含相同的key值,每个key只能映射一个value,key决定了存储对象在映射中 约定不等于承诺〃/ 2022年07月19日 02:52/ 0 赞/ 225 阅读
相关 Map集合 Map Map接口是一种双列集合,它的每个元素都包含一个键对象Key和一个值对象Value,键和值对象之间存在一种对应关系,称为映射。一个映射不能包含重复的键,每个键最多 叁歲伎倆/ 2022年07月12日 04:47/ 0 赞/ 276 阅读
相关 Map集合 / Map集合:该集合存储键值对。一对一对往里存,而且保证键的唯一性。 1:添加 put(K key,V value); putAl 末蓝、/ 2022年06月17日 01:23/ 0 赞/ 221 阅读
相关 Map集合 Map集合 一、Map集合概述和特点 1,概述 \将键映射到值的对象 \一个映射不能包含重复的键 \每一个键最 我不是女神ヾ/ 2022年05月21日 13:18/ 0 赞/ 276 阅读
相关 Map集合 【前言】 1.Map 用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里key,另外一组值用于保存Map里的value,key和value都可以 ゞ 浴缸里的玫瑰/ 2022年05月19日 23:14/ 0 赞/ 290 阅读
相关 map集合 Map集合的特点: 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值 Map集合和Collection集合的区别? Map集合存储元素 向右看齐/ 2022年05月17日 04:07/ 0 赞/ 257 阅读
相关 Map集合 Map集合 (一)Map集合 1.Map集合的特点; 可以储存键映射到值得对象,且一个映射不能包含重复的键,每个键最多只能映射到一个值 只和键有关和值没有关系 深藏阁楼爱情的钟/ 2021年11月29日 12:04/ 0 赞/ 421 阅读
还没有评论,来说两句吧...