企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
### 概述 Map(键值对)接口下的集合与Collection接口下的集合,它们存储数据的形式不同 . 1. collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 2. Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 3. Collection中的集合称为单列集合,Map中的集合称为双列集合。 4. 需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值 , 而且是无序的。 5. Map中常用的集合为HashMap集合、LinkedHashMap集合。 ## Map集合的特点 1. Map集合和Collection集合没有继承关系,所以不能直接使用迭代器. 2. Collection每个元素都是单独存在的,Map集合的每一个元素都是成对存在的. 3. Collection<E> 一个 泛型. Map<K,V>两个泛型,K代表键的类型,V代表值的类型,K,V可以相同也可以不同,但是必须都是引用类型. 4. Map集合的元素中,键是唯一的,值是可以重复的. ### 遍历方式 #### 使用while ~~~ Map<String, Integer> map = new HashMap<String, Integer>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); map.put("d", 4); Set<String> set = map.keySet(); System.out.println(set.getClass()); //通过getClass()方法可以知道类型 Iterator<String> it = set.iterator(); while (it.hasNext()) { String key = it.next(); Integer value = map.get(key); System.out.println(key+"--"+value); } ~~~ 结果 ~~~ class java.util.HashMap$KeySet //其实是HashMap的一个内部类来实现的 a--1 b--2 c--3 d--4 ~~~ #### 使用foreach ~~~ Map<String, Integer> map = new HashMap<String, Integer>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); map.put("d", 4); Set<String> set = map.keySet(); for (String key: set){ Integer value = map.get(key); System.out.println(key+"--"+value); } ~~~ 结果 ~~~ a--1 b--2 c--3 d--4 ~~~