Map集合

在Map里面每一次可以存放两个对象,所有的对象按照“key = value”的形式保存。也就是说通过key可以找到对应的value。

Collection存放数据的目的是为了输出,而Map存放数据的目的是为了查找。

在java.util中Map接口里面定义的方法如下:

public V put(K key, V value) 普通 向Map集合之中保存数据
public V get(Object key) 普通 根据key取得对应的value数据
public boolean containsKey(Object key) 普通 判断key是否存在
public Set<Map.Entry<K,V>> entrySet() 普通 将Map集合转为Set集合
public Set<K> keySet() 普通 取得所有的key

根据以上的方法实际上就可以得出一结论:在Map集合之中如果要保存数据,那么数据的key一定不可能重复,如果真发生了重复,那么将会出现覆盖的情况。

在使用Map接口的时候比较常用的两个子类:HashMap、Hashtable、TreeMap(根据key排序)。

 1 package cn.test;
 2
 3 import java.util.HashMap;
 4 import java.util.Map;
 5
 6 public class TestLocal{
 7     public static void main(String[] args) {
 8         Map<String,String> map = new HashMap<String,String>();
 9         map.put("李洋", "好孩子");
10         map.put("张哲", "美女");
11         map.put("詹秉承", "二货");
12         map.put(null, "空");
13         map.put("空", null);
14         map.put(null, null);
15         map.put("庞涵", "单身狗");
16     System.out.println(map);
17     System.out.println(map.get("李洋"));
18     System.out.println(map.get("李扣"));
19     }
20 }

结果:

{null=null, 李洋=好孩子, 张哲=美女, 詹秉承=二货, 空=null, 庞涵=单身狗}
好孩子
null

总结:只允许存放一个null的key信息,因为会出现覆盖的情况。

  在整个过程之中你可以明显的发现,如果存在的key进行查找则返回对应的value,如果不存在的key查找时返回的就是null。

2、Iterator输出Map(核心)

给出Map如何使用Iterator输出的操作步骤:

· 利用Map接口中的entrySet()方法将Map集合变为Set集合;

· Set接口之中提供有iterator()方法,可以利用此方法将Set集合使用Iterator输出;

· 利用Iterator迭代后取出每一个的Map.Entry对象,并且进行key与value的分离。

 1 package cn.test;
 2
 3 import java.util.Iterator;
 4 import java.util.Map;
 5 import java.util.Set;
 6 import java.util.TreeMap;
 7
 8 public class TestLocal{
 9     public static void main(String[] args) {
10         Map<String,String> map = new TreeMap<String,String>();
11         map.put("liyang", "好孩子");
12         map.put("zhangzhe", "美女");
13         map.put("zhancheng", "二货");
14         map.put("panghan", "单身狗");
15         Set<Map.Entry<String,String>> set = map.entrySet();
16         Iterator<Map.Entry<String,String>> iter = set.iterator();
17         while(iter.hasNext()){
18             Map.Entry<String, String> me = iter.next();
19             System.out.println(me.getKey() + " = " + me.getValue());
20         }
21     }
22 }

结果:

liyang = 好孩子
panghan = 单身狗
zhancheng = 二货
zhangzhe = 美女

在以后的开发之中,虽然主要的输出模式都是利用Collection完成,但是并不意味着不使用Map输出。

时间: 2024-10-17 15:36:21

Map集合的相关文章

Map集合框架的使用

Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false Map中包含了一个keySet()方法,用于返回Map所以key组成的Set集合. Map集合与Set集合元素的存储形式很像,如Set接口下有HashSet.LinkedHashSet.SortedSet(接口).TreeSet.EnumSet等实现类和子接口,而Map接口下则有HashMap.LinkedHashMap.SortedMa

Map集合按照value和key进行排序

最近由于特殊的业务需求,需要做相关数据排序,下面就贴出其中的将map集合中按照value或者key进行排序的代码,后面再具体详说. 1 /** 2 * map 集合排序 3 * @param map 4 * @return 5 */ 6 public static <K, V extends Comparable<? super V>> Map<K, V> sortMap(Map<K, V> map) 7 { 8 List<Map.Entry<K

Java遍历Map集合方法

package testMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /**  * 循环遍历Map集合  *   * @author Administrator  *   */ pub

Java基础知识强化之集合框架笔记57:Map集合之HashMap集合(HashMap&lt;Student,String&gt;)的案例

1. HashMap集合(HashMap<Student,String>)的案例 HashMap<Student,String>键:Student      要求:如果两个对象的成员变量值都相同,则为同一个对象.值:String HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里. HashMap 中作为键的对象必须重写Object的hashCode()方法和equals()方法 2. 代码示例: (1)Student.java,如下: 1 pa

查询字符串中字母的个数(两种实现方式1,list与set集合 2,map集合)

题目: 取出一个字符串中字母出现的次数.如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)... 第一种方式(set和list结合使用): package itheima; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * .取出一个字符串中字母出现的次数.如:字符串:"

Map集合总结

Map是双列集合的顶层接口. Map集合的数据结构仅仅针对键有效,与值无关. Map集合存储的是键值对形式的元素,键唯一,值可以重复 Map集合有HashMap.Hashtable.TreeMap三个常用子类. 1.HashMap底层数据结构是哈希表.线程不安全,效率高.允许使用null键和null值 哈希表依赖两个方法:hashCode()和equals() 执行顺序: 首先判断hashCode()值是否相同 是:继续执行equals(),看其返回值 是true:说明元素重复,不添加 是fal

JAVA学习第三十九课(常用对象API)- 集合框架(七)— Map集合及其子类对象

一.Map集合常见子类 HashTable:内部结构是哈希表,同步,此实现提供所有可选的映射操作,不允许使用 null 值和 null 键 (HashTable下有子类Properties,使用频率非常高,用来存储键值对型的配置文件信息和IO技术相结合) HashMap:内部结构是哈希表,不同步,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键. TreeMap:内部结构是二叉树,不同步,可以对Map集合中的键进行排序. 二.HashMap演示 import java.ut

遍历Map集合的几种方式

1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 import java.util.Map.Entry; 5 6 /** 7 * <p>遍历Map集合</p> 8 * @author:[email protected] 9 * @date:2017-5-30 10 */ 11 public class Test { 12 public static void main

Map集合概述和特点

A:Map集合概述和特点(Set底层依赖的是Map) 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接口的不同 Map是双列的(是双列集合的根接口),Collection是单列的(是单列集合的根接口) Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构值针对键有效,跟值无关;如:TreeMap:键是用二叉树算法,HashMap:键是hash算法, Collection集合的数据结构是针对元素有效 图解: