Map接口
- map中的集合,元素是成对存在的。每个元素由键与值两部分组成。map中的集合称为双列集合。
- map中的集合不能包含重复的键,值可以重复,每个键只能对应一个值。
- Map中常用的集合为HashMap集合,LinkedHashMap集合
HashMap基本方法
package cn.itcast.demo06;
import java.util.HashMap;
import java.util.Map;
public class MapDemo {
public static void main(String[] args) {
/*
将键值对存储到集合中
V put(K,V) K 作为键的对象,V 作为值的对象
通过键获取值,如果没有这个键返回none
V get(K)
移除集合中键值对,返回移除之前的值
V remove(K)
*/
function();
}
public static void function() {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a",1);
map.put("b",2);
map.put("c",3);
Integer i = map.put("c",5); // 返回被覆盖之前的值
System.out.println(map);
System.out.println(i); // 输出3
System.out.println(map.get("a")); // 输出1
map.remove("b");
System.out.println(map);
}
}
map集合遍历
KeySet方法
将map集合的键存入set集合,再对set集合遍历,下面是标准的遍历过程
package cn.itcast.demo06;
import java.security.Key;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo1 {
public static void main(String[] args) {
/*
1.调用map集合的方法KeySet,所有键存到Set集合中
2.遍历set集合,获取Set集合中的所有元素(Map中的键)
3.调用map集合的方法get,通过键获取到值
*/
function();
}
public static void function() {
// 定义map集合
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
// 调用KeySet方法
Set<String> set = map.keySet();
// 遍历set集合
// 使用迭代器遍历
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
Integer value = map.get(key);
System.out.println(key + ":" + value);
}
System.out.println("=====================");
// 使用增强for遍历
for (String key : set) {
Integer value = map.get(key);
System.out.println(key + ":" + value);
}
}
}
entrySet方法
package cn.itcast.demo06;
import java.util.*;
public class MapDemo2 {
public static void main(String[] args) {
function();
}
/*
map集合获取方式
entrySet方法,键值对映射关系获取
实现步骤:
1.调用map集合方法entrySet()将集合中的映射关系d对象,存储到Set集合
Set< Entry <K,V> >
2.迭代set集合
3.获取出Set集合的元素,是映射关系对象
4.通过映射关系对象getKey,getValueh获取键值对
创建内部类对象: 外部类.内部类 = new
*/
public static void function() {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
// Set 集合中存的是映射关系
Set<Map.Entry<String, Integer>> set = map.entrySet();
// 迭代set集合
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> entry = it.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ":" + value);
}
System.out.println("==============");
// 增强for形式
for (Map.Entry<String, Integer> entry : set) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ":" + value);
}
}
}