Map
无序,key不可重复,value可以重复
- 方法
put(K key, V value)
//如果没有重复,返回null。有重复则返回被覆盖的值
putAll(Map<? extends K,? extends V> m)
//添加其它map到当前的map中
remove(Object key)
//根据key删除对应的数据,返回key的值
clear()
//清空map
get(Object key)
//根据key获取value
size()
//获取键值对的个数
containsKey(Object key)
//判断map中是否有该key
containsValue(Object value)
//判断map中是否有该value
isEmpty()
//是否为空
keyset()
//返回map中所有key的存到一个set的集合中
values()
//返回map中所有values的存到一个collection
entrySet()
Set<Map.Entry<String,String>> entrys = map.entrySet();
Iterator<Map.Entry<String,String>> it = entrys.iterator();
while(it.hasNext()){
Map.Entry<String,String> entry = it.next();
System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());
}
HashMap
基于hash实现的,使用的是kay的Hash方法得到存储位置,再使用equals进行比较
TreeMap
基于二叉树实现,如果key属于自然元素则进行排序,不具备就需要实现Comparable接口
Map 遍历
private static void mapentry(Map<String, String> map) {
//entry方法遍历
Set<Entry<String,String>> entrySet = map.entrySet();
Iterator<Entry<String, String>> iterable = entrySet.iterator();
while (iterable.hasNext()) {
Map.Entry<String, String> entry= iterable.next();
System.out.println(entry.getKey()+" = "+entry.getValue());
}
}
private static void mks(Map<String, String> map) {
//keyset方法遍历
//把map中的键存到set中然后用set进行遍历
Set<String> mapkeyset = map.keySet();
Iterator<String> iterable = mapkeyset.iterator();
while (iterable.hasNext()) {
String key = iterable.next();
System.out.println(key + " = " + map.get(key));
}
}