Map接口的使用
Map:映射
Map接口与Set,List接口的区别
1.Map添加的元素对象是以键值对的形式存在的
2.Map添加元素的方法是put(K key, V value),而不是使用add()方法
Map接口的特点:
(1)存储键值对(2)键不能重复,值可以重复(3)无序无下标
如果添加了重复的键,那么值会被后面添加的值覆盖
Map接口的重要方法
1.Set<K> keySet():返回映射中的只包含键的Set集合
2.Set<Map.Entry<K,V>> entrySet():返回映射中的键值对的Set集合
第2个方法的内部接口Map.Entry<K,V>的方法:
1.K getKey():返回键
2.V getValue():返回值
3.remove(Object v):因为键不可以重复,所以通过删除键来删除整个映射
4.V get(Object K):返回指定键所映射的值
5.
因为第1第2个方法返回的都是Set集合,所以可以通过Set的iterator方法来遍历
代码实现
/**
* Map接口的使用
* 特点:(1)存储键值对(2)键不能重复,值可以重复(3)无序无下标
*/
public class Test {
public static void main(String[] args) {
//创建Map集合
Map<String,String> map = new HashMap<>();
//1添加元素
map.put("cn","中国");
map.put("uk","英国");
map.put("usa","美国");
map.put("cn","zhongguo");//键不能重复,所以添加失败
System.out.println(map.size());
System.out.println(map.toString());//{usa=美国, uk=英国, cn=zhongguo},cn的值被后面添加的覆盖了
//2删除
//map.remove("usa");
//System.out.println(map.size());//2
//3遍历
//3.1使用keySet();
System.out.println("===keySet()=====增强for循环==================");
Set<String> set = map.keySet();//返回Set类型,所以可以使用迭代器
for(String s:set){
System.out.println(s+"-------"+map.get(s));
}
System.out.println("====keySet()=========迭代器=================");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next+"----"+map.get(next));
}
//3.2使用entrySet();
Set<Map.Entry<String, String>> entries = map.entrySet();
System.out.println("=======entrySet========增强for循环================");
for(Map.Entry<String, String> entry:entries){
System.out.println(entry.getKey()+"--------"+entry.getValue());
}
System.out.println("=======entrySet========迭代器================");
Iterator<Map.Entry<String, String>> iterator1 = entries.iterator();
while (iterator1.hasNext()){
Map.Entry<String, String> next = iterator1.next();
System.out.println(next);
}
//4判断
System.out.println(map.containsKey("usa"));//true
System.out.println(map.containsValue("韩国"));//false
System.out.println(map.isEmpty());//false
}
}