Map集合Map集合概述和特点 Map集合概述: java.util Interface MapK,V K:键的类型 V:值的类型 将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。 Map 是一种键-值对(
Map集合概述:
java.util
Interface Map<K,V> K:键的类型 V:值的类型
将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。
Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。
创建Map集合的对象
多态的方式
Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。
示例
public class Map01 {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
//V put(K key,V value)将指定的值与该映射中的指定键相关联(可选操作)。如果映射先前包含了密钥的映射,则旧值将被指定的值替换。
map.put("001","哦哦");
map.put("002","哈哈");
map.put("003","嘿嘿");
// map.put("003","哦哦");
System.out.println(map);
}
}
若是把被注释003那行添加进去,结果会变成:
示例
public class Map02 {
public static void main(String[] args) {
Map<String,String> map = new HashMap<>();
// V put (K key,V value):添加元素
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
map.put("张无忌","赵敏");
// V remove(Object key):根据键删除键值对元素,返回删除的元素
// System.out.println(map.remove("杨过"));//小龙女
// System.out.println(map.remove("Bob"));//null
// void clear():移除所有的键值对元素
// map.clear();//{}
// boolean containsKey(Object key): 判断集合是否包含指定的键
// System.out.println(map.containsKey("杨过"));//true
// System.out.println(map.containsKey("Bob"));//false
// boolean containsValue(Object value):判断集合是否包含指定的值
// System.out.println(map.containsValue("小龙女"));//true
// System.out.println(map.containsValue("Bob"));//false
// boolean isEmpty():判断集合是否为空
// System.out.println(map.isEmpty());//false
// int size():集合的长度,也就是集合中键值对的个数
// System.out.println(map.size());//3
System.out.println(map);
}
}
Map集合的获取功能
示例
import java.util.*;//表示把这个包下的全部类导入到程序中。
public class map03 {
public static void main(String[] args) {
Map<String,String > map = new HashMap<>();
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
map.put("张无忌","赵敏");
// V get(Object key):根据键获取值
System.out.println(map.get("杨过"));
System.out.println(map.get("杨幂"));
System.out.println("------------");
// Set<K> keySet():获取所有键的集合
// System.out.println(map.keySet());
Set<String> keySet = map.keySet();
for (String key:keySet) {
System.out.println(key);
}
System.out.println("-----------");
// Collection(V) values():获取所有值的集合
Collection<String> values = map.values();
for (String value :
values) {
System.out.println(value);
}
}
}
运行结果如下
1. 获取所有键的集合,用keySet()方法实现
2. 遍历键的集合,获取到每一个键。用增强for实现
3. 根据键去找值。用get(Object key)方法实现
示例
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Map04 {
public static void main(String[] args) {
Map<String,String> map = new HashMap<>();
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
map.put("张无忌","赵敏");
Set<String> keySet = map.keySet();//获取所有键的集合
for (String key :
keySet) {
String value = map.get(key);//根据键获取值
System.out.println(key+","+value);
}
}
}
运行结果如下
- 获取所有键值对对象的集合
Set<Map.Entry<K,V>> entrySet():返回此地图中包含的映射的Set视图
也就是获取所有键值对对象的集合 - 遍历键值对对象的集合,得到每一个键值对对象
用增强for循环,得到每一个Map.Entry - 根据键值对对象获取键和值
用getKey()获取键
用getValue()获取值
示例
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
class Map041{
public static void main(String[] args) {
Map<String,String > map = new HashMap<>();
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
map.put("张无忌","赵敏");
Set<Map.Entry<String, String>> entrySet = map.entrySet();
// Map.Entry<String,String>相当于Set集合中的元素类型
for (Map.Entry<String,String> m:entrySet){
String key = m.getKey();
String value = m.getValue();
System.out.println(key+","+value);
}
}
}
【文章转自迪拜服务器 http://www.558idc.com/dibai.html处的文章,转载请说明出处】