集合框架(map接口)
- Map是双列集合的根接口,Collection是单列集合的根接口
- Map的键是唯一的,Collection的子体系Set也是唯一的
- Map集合的数据结构只针对键有效,跟值无关。Collection结合的数据是针对元素有效。
- Set体系基于Map体系。Set将元素当做Map的Key使用,Value为空。
Map体系图:HashMap,TreeMap。
- 基本应用
public class Demo1_HashMap {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
System.out.println(map);
}
}
- containsKey和containsValue
public class Demo1_HashMap {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
System.out.println(map.containsKey("张三"));
System.out.println(map.containsValue(23));
System.out.println(map);
}
}
- keySet和Values
public class Demo1_HashMap {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
System.out.println(map.keySet());
System.out.println(map.values());
}
}
- 通过键迭代值
public class Demo1_HashMap {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
Iterator<String> it = map.keySet().iterator();
while(it.hasNext()){
System.out.println(map.get(it.next()));
}
}
}
// 方法2
public class Demo1_HashMap {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
for (String k : map.keySet()) {
System.out.println(map.get(k));
}
}
}