1. 概述
java.util.Map <K,V>接口是一个顶层接口,里面存放的数据单元是:单对元素;
Map接口的主要实现类:
HashMap类 (哈希表数据结构)
TreeMap类 (红黑树)
2. 常用方法
Map <K,V>
V put(K key, V value) -将参数指定的key 和 value组成一个完整键值对,放入集合。
- 若集合中之前没有该key值,则返回null。
-否则返回之前key值对应的value值。
V remove(Object key) -删除参数指定key对应的键值对,返回key对应的value值
boolean containsKey(Object key) -用于判断参数指定的key值是否存在
boolean containsValue(Object value) -用于判断参数指定的value是否存在
V get(Object key) -用于获取参数key对应的value值
Set<Map.Entry<K, V>> entrySet( ) -用于获取Map集合的Set视图
K getKey( ) -用于获取调用对象的key值
V getValue( ) -用于获取调用对象的value值
Set<K> keySet( ) -获取Map集合中 key的Set视图
代码:package com.monkey1024.map;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
// 定义一个接口类型的引用指向 实现类的对象,形成多态
Map<String,String> m1=new HashMap<String,String> ();
//操作1: 向集合中添加元素
String val = m1.put("1", "one");
System.out.println("1.向集合中添加元素(\"1\", \"one\"): " val); //null
val=m1.put("2", "two");
System.out.println("1.向集合中添加元素(\"2\", \"two\"): " val); //null
val=m1.put("3", "three");
System.out.println("1.向集合中添加元素(\"3\", \"three\"): " val); //null
System.out.println();
// 操作2:若键值对已经存在,相当于修改value的效果
val= m1.put("1", "eleven");
System.out.println("2.向集合中添加元素(\"1\", \"eleven\")");
System.out.println("若键值对已经存在,否则返回之前key值对应的value值");
System.out.println("打印value值: " val);
System.out.println();
// 操作3:判断key值为 "1"的元素 是否存在
boolean b = m1.containsKey("1");
System.out.println("3.判断key值为 \"1\"的元素 是否存在: " b);
System.out.println();
// 操作4:判断value值为 "two"的元素 是否存在
b = m1.containsValue("two");
System.out.println("4.判断value值为 \"two\"的元素 是否存在: " b);
System.out.println();
// 操作5:获取 key值为 "3",对应的 value值
String str = m1.get("3");
System.out.println("5.获取 key值为 \"3\",对应的 value值: " str);
System.out.println();
// 操作6: 删除key值为"3"元素对应的值
String remove = m1.remove("3");
System.out.println("6.删除key值为\"3\"元素对应的值: " remove);
System.out.println();
// 操作7: 将Map转换为 Set,得到 Set的视图
Set<Map.Entry<String, String>> s1 = m1.entrySet();
System.out.println("7.将Map转换为 Set,得到 Set的视图: " s1);
System.out.println();
// 操作8:打印Set视图 中的每一个元素的 key 和 value
for(Map.Entry<String, String> me:s1) {
System.out.println("8.将Map转换为 Set,得到 Set的视图: " me.getKey() "," me.getValue());
}
System.out.println( );
// 操作9: 获取map中的key组成的Set视图
Set<String> s2 = m1.keySet();
System.out.println("9.获取map中的key组成的Set视图: " s2);
System.out.println();
// 操作10:打印集合中的所有key 和 value
for(String s:s2) {
System.out.println("10.打印集合中的所有key 和 value: " s "," m1.get(s));
}
}
} 结果:1.向集合中添加元素("1", "one"): null
1.向集合中添加元素("2", "two"): null
1.向集合中添加元素("3", "three"): null
2.向集合中添加元素("1", "eleven")
若键值对已经存在,否则返回之前key值对应的value值
打印value值: one
3.判断key值为 "1"的元素 是否存在: true
4.判断value值为 "two"的元素 是否存在: true
5.获取 key值为 "3",对应的 value值: three
6.删除key值为"3"元素对应的值: three
7.将Map转换为 Set,得到 Set的视图: [1=eleven, 2=two]
8.将Map转换为 Set,得到 Set的视图: 1,eleven
8.将Map转换为 Set,得到 Set的视图: 2,two
9.获取map中的key组成的Set视图: [1, 2]
10.打印集合中的所有key 和 value: 1,eleven
10.打印集合中的所有key 和 value: 2,two
|