——- android培训、java培训、期待与您交流! ———-
Map
1 查阅API,查找Map最基本信息
在java.util包里面有:
接口 Map
2 Map集合共性方法
###2.1 添加。
put(K key, V value)
putAll(Map<? extends K,? extends V> m)
###2.2 删除。
clear()
remove(Object key)
###2.3 判断。
containsValue(Object value)
containsKey(Object key)
isEmpty()
###2.4 获取。
get(Object key)
size()
values()
entrySet()
keySet()
3 Map常用类
3.1 Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
3.2 HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
3.3 TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行自然排序。
小结:
Map和Set很像。
其实Set底层就是使用了Map集合。
下面演示一下Map的共性方法
import java.util.*;
//主类要加public,对外提供出去
public class MapDemo
{
public static void main(String[] args)
{
putDemo(); //测试Map添加方法
//deleteDemo(); //测试删除方法
//booleanDemo(); //测试判断方法
//getDemo(); //测试获取方法
}
public static void putDemo() //1 添加 put(K key, V value)
{
Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
System.out.println("put方法返回值:"+map.put("num01","Jack")); //添加一对键值,打印put的返回值
System.out.println("put方法返回值:"+map.put("num01","WashingTon")); //添加重复键,打印put的返回值
map.put("num03","Green"); //添加一对键值
map.put("num02","Tom"); //添加一对键值
map.put("num04","Jane"); //添加一对键值
System.out.println(map); //打印集合map
}
public static void deleteDemo() //2 删除
{
Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
map.put("num01","Jack"); //添加一对键值
map.put("num03","Green"); //添加一对键值
map.put("num02","Tom"); //添加一对键值
map.put("num04","Jane"); //添加一对键值
System.out.println("原集合:"+map); //打印集合map
System.out.println("删除不存在的键,返回:"+map.remove("o2")); //删除不存在的键
System.out.println("删除存在的键,返回:"+map.remove("num02")); //删除存在的键
System.out.println("删除元素后:"+map); //打印删除元素后集合map
map.clear(); //清空
System.out.println("清空后:"+map); //打印清空后集合map
}
public static void booleanDemo() //3判断
{
Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
map.put("num01","Jack"); //添加一对键值
map.put("num03","Green"); //添加一对键值
map.put("num02","Tom"); //添加一对键值
map.put("num04","Jane"); //添加一对键值
System.out.println("映射中有num01:"+map.containsKey("num01")); //判断映射中是否有指定键
System.out.println("映射中有num05:"+map.containsKey("num05")); //判断映射中是否有指定键
System.out.println("映射中有值Jack:"+map.containsValue("Jack")); //判断映射中是否有指定值
System.out.println("映射中有值Jack:"+map.containsValue("Mike")); //判断映射中是否有指定值
System.out.println("映射为空:"+map.isEmpty()); //判断映射是否为空
map.clear(); //清空
System.out.println("映射清空了:"+map.isEmpty()); //判断映射是否为空
}
public static void getDemo() //4 获取
{
Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
map.put("num01","Jack"); //添加一对键值
map.put("num03","Green"); //添加一对键值
map.put("num02","Tom"); //添加一对键值
map.put("num04","Jane"); //添加一对键值
System.out.println("原集合:"+map); //打印集合map
System.out.println("用键num01获取值:"+map.get("num01")); //获取指定键所对应的的值
System.out.println("用键num05获取值:"+map.get("num05")); //获取指定键所对应的的值
map.put(null,"Mike"); //存null键和对应值
map.put("num05",null); //存键和对应null值
System.out.println("集合:"+map); //打印集合map
Collection<String> v = map.values(); //返回map中所有值的集合
System.out.println("Values集合"+v); //打印所有值
System.out.println("键值对总数:"+map.size()); //打印映射中键值对总数
}
}
putDemo
deleteDemo
getDemo
booleanDemo
总结:
通过putDemo可以知道:
添加元素,添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。
并put方法会返回被覆盖的值。
通过deleteDemo可以知道:
remove方法会删除指定键对应的键值关系,并返回指定键对应值
通过booleanDemo可以知道:
containsKey()是判断映射是否包含指定键
containsValue()是判断映射是否包含指定值
isEmpty()是判断映射是否为空
通过getDemo可以知道:
get方法还可以用来判断该键值对是否存在