/*
Map:是一个单独的接口,不属于Collection,属于集合,一对一对的存,称为键值对
HashMap:底层使用的数据结构是哈希表,线程不安全的
TreeMap:底层使用的数据结构是二叉树,线程不安全的
添加:
V put(K key, V value)
void putAll(Map<? extends K,? extends V> m)
删除:
V remove(Object key)
void clear()
获取:
V get(Object key)
Set<K> keySet()
Set<Map.Entry<K,V>> entrySet()
int size()
Collection<V> values()
判断:
boolean isEmpty()
boolean containsKey(Object key)
boolean containsValue(Object value)
*/
下面是Map的方法的一些用法
import java.util.*;
class Demo11
{
public static void main(String[] args)
{
//键是不能重复的,如果键重复了,那么后添加的会覆盖之前添加的
Map<String,String> map = new HashMap<>();
//添加键值对儿
//返回的上一次添加的相同键的值
//System.out.println(map.put("001","dongdong"));//null
//System.out.println(map.put("001","嘻嘻"));//"dongdong"
map.put("001","dongdong");
map.put("002","xixi");
map.put("003","nannan");
map.remove("001");//根据键删除一对
System.out.println(map);
String value = map.get("002");//根据键获取值
System.out.println(value);
Collection<String> values = map.values();//得到所有值的集合
Iterator<String> ite = values.iterator();
while(ite.hasNext())
{
System.out.println(ite.next());
}
boolean b1 = map.containsKey("003");//判断是否包含某个键
boolean b2 = map.containsValue("xixi");//判断是否包含某个值
System.out.println(b1+","+b2);
}
}
对于Map里面内容的遍历,我们有两种方法
/*
遍历Map集合的方式:
Set<K> keySet(): 得到所有键的集合存储到一个Set中,并返回该Set集合,因为Set有迭代器,所以使用迭代器迭代,每次迭代出一个键,再根据键获取值
Set<Map.Entry<K,V>> entrySet(): 得到每个键值对对应的映射关系类型的值,存到Set集合中,并返回该集合,因为Set有迭代器,每次迭代出来的是一个映射关系类型的值,从这个映射关系类型的值中既可以得到键,也可以得到值
Entry是定义在Map中的一个静态接口,有了集合,有了集合中的键值对,才会存在映射关系,所以映射关系是对集合内部事物的描述,所以定义在Map内部
*/
下面是两个遍历方式的简单应用
import java.util.*;
class Demo12
{
public static void main(String[] args)
{
Map<String,String> map =new HashMap<>();
map.put("001","dongdong");
map.put("002","xixi");
map.put("003","nannan");
Set<Map.Entry<String,String>> entry = map.entrySet();
Iterator<Map.Entry<String,String>> ite = entry.iterator();
while(ite.hasNext()){
Map.Entry<String,String> en = ite.next();
String key = en.getKey();
String value = en.getValue();
System.out.println(key+"="+value);
}
/*
Set<String> keys = map.keySet();
Iterator<String> ite = keys.iterator();
while(ite.hasNext())
{
String key = ite.next();
String value = map.get(key);
System.out.println(key+"="+value);
}*/
}
}