双列集合:
-------| Map如果是实现了Map集合类,具备的特点:存储的数据都是以键值对的形式存在的,键不可重复,值可重复
---------| HashMap 底层基于哈希表实现
---------| TreeMap 基于红黑树数据结构实现的,会对元素的键进行排序存储
---------| HashTable 底层依赖了哈希表实现的,实现方式与HashMap一致,但HashTable是线程安全的,操作效率低
Map的方法:
一,添加:
1.put(K key,V value)
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map);
2.putAll(Map <?extends K ,? extends V > m)
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map);
Map<String,String> map2=new HashMap<String,String>();
map2.put("一一", "二二");
map2.put("三三", "四四");
map.putAll(map2);//把map2的元素添加到map中
System.out.println(map);
二、获取:
1.get(Object key):根据指定的键获取对应的值
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map.get("紫薇"));
2.size():获取map集合键值对个数
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map.size());
三、判断
1.containsKey(Object key):判断集合是否包含指定的键
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map.containsKey("汪峰"));
2.containsValue(Object value):判断结合是否包含对应的值
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map.containsValue("章子怡"));
3.isEmpty():判断集合是否为空
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map.isEmpty());
四,删除:
1.remove(Object key):根据键删除一条数据,返回该键的值
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
System.out.println(map.remove("紫薇"));
2.clear():清空集合中的所有数据
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
map.clear();
System.out.println(map);
五、迭代:
1.keySet()
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
//map集合遍历方式一:keySet()
Set<String> keys=map.keySet();//把map集合中所有的键都保存到一个set类型的集合对象中返回
System.out.println(keys);
缺点:只有键没有值
2.values()
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
//map集合遍历方式二:values()
Collection<String> c=map.values();//把集合中的所有值都存储到一个collection集合中
Iterator<String> it=c.iterator();
while(it.hasNext()){
System.out.println("值:"+it.next());
}
缺点:只有值没有键
3.entrySet()
Map<String,String> map=new HashMap<String,String>();
map.put("汪峰","章子怡");
map.put("谢霆锋", "王菲");
map.put("紫薇", "尔康");
//map集合遍历方式三:entryset()
Set<Entry<String,String>> entrys=map.entrySet();
Iterator<Entry<String,String>> it=entrys.iterator();
while(it.hasNext()){
Entry<String,String> entry=it.next();
System.out.println("键:"+entry.getKey()+" 值:"+entry.getValue());
}