Map集合特点:
可以存储键值对应的元素
将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值
Map集合和Collection的区别
Map存储元素成对出现,Map集合的键是唯一的,值是可重复的
Collection存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的
注意:
Map集合的数据结构值针对键有效,跟值无关
功能概述:
1.添加功能
V put(K key, V value) 可以相同的key值,但是添加的value值会覆盖前面的,
返回值是前一个,如果没有就返回null) 相当于修改功能!
2.删除功能
remove() 删除关联对象,指定key对象
clear() 清空集合对象
3.判断功能
boolean isEmpty() 长度为0返回true否则false,判断集合是否为空
boolean containsKey(Object key) 判断集合中是否包含指定的key
boolean containsValue(Object value) 判断集合中是否包含指定的value
4.获取功能
Set<Map.Entry<K,V>> entrySet()
value get(key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返回的是null
根据键获取值
Set<K> KeySet() 获取集合中所有键的集合
Collection<V> values() 获取集合中所有值的集合
5.长度功能
int size() 返回集合中键值对的对数
获取功能
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/*
* 获取功能:
* value get(key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返回的是null 根据键获取值
* Set<K> KeySet() 获取集合中所有键的集合
* Collection<V> values() 获取集合中所有值的集合
*/
public class MapDemo2 {
public static void main(String[] args) {
// 创建集合对象
Map<String, String> map = new HashMap<String, String>();
// 添加元素
map.put("周杰伦", "昆凌");
map.put("喜羊羊", "美羊羊");
map.put("灰太狼", "红太狼");
map.put("大雄", "静香");
// 根据键获取值
System.out.println(map.get("周杰伦"));
System.out.println("------------------------");
// Set<K> KeySet() 获取集合中所有键的集合
// 当然要现有一个集合来存储
Set<String> set = new HashSet<String>();
set = map.keySet();
// 遍历
for (String s : set) {
System.out.println(s);
}
System.out.println("------------------------");
// Collection<V> values() 获取集合中所有值的集合
Collection<String> c = map.values();
for (String s : c) {
System.out.println(s);
}
}
}
map集合的遍历---方式一
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* map集合的遍历---方式一
* map-夫妻对
* 思路:
* 获取所有的键
* 遍历键的集合,获取得到每一个键
* 根据键找值
*/
public class MapDemo3 {
public static void main(String[] args) {
// 创建集合对象
Map<String, String> map = new HashMap<String, String>();
// 添加元素
map.put("周杰伦", "昆凌");
map.put("喜羊羊", "美羊羊");
map.put("灰太狼", "红太狼");
map.put("大雄", "静香");
// 遍历
// 获取所有的键
Set<String> set = map.keySet();
// 遍历键的集合,获取得到每一个键
for (String key : set) {
// 根据键找值
String value = map.get(key);
System.out.println(key + "==" + value);
}
}
}
map集合的遍历---方式二
/*
*map集合的遍历---方式二
*
*思路:
* 获取所有键值对对象的集合
* 遍历所有键值对对象的集合,得到每一个键值对对象
* 根据键值对对象获取键和值
*
* Set<Map.Entry<K,V>> entrySet() 返回的是键值对对象的集合
*/
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo4 {
public static void main(String[] args) {
// 创建集合对象
Map<String, String> map = new HashMap<String, String>();
// 添加元素
map.put("周杰伦", "昆凌");
map.put("喜羊羊", "美羊羊");
map.put("灰太狼", "红太狼");
map.put("大雄", "静香");
// 获取所有键值对对象的集合
Set<Map.Entry<String, String>> set = map.entrySet();
// 遍历所有键值对对象的集合,得到每一个键值对对象
for (Map.Entry<String, String> me : set) {
// 根据键值对对象获取键和值
System.out.println(me.getKey() + "==" + me.getValue());
}
}
}
HashMap
import java.util.HashMap;
import java.util.Set;
/*
* HashMap:是基于哈希表的map接口实现
* 哈希表的作用是保证键的唯一性
*
* HashMap<String,String>
*
*
*/
public class HashMapDemo {
public static void main(String[] args) {
// 创建集合对象
HashMap<String, String> hm = new HashMap<String, String>();
// 添加元素
hm.put("周杰伦", "昆凌");
hm.put("喜羊羊", "美羊羊");
hm.put("灰太狼", "红太狼");
hm.put("大雄", "静香");
// 遍历
Set<String> set = hm.keySet();
for (String key : set) {
String value = hm.get(key);
System.out.println(key + "==" + value);
}
}
}