题目: 根据要求完成以下设计:
城市 等级
北京 一线
上海 一线
深圳 一线
石家庄 二线
唐山 二线
保定 三线
完成下列要求:
- 将以上内容存入Map集合,以城市名字为键,等级为值,进行遍历。
- 输出所有二线的城市名字
- 打印输出石家庄和保定的城市等级
1.将以上内容存入Map集合,以城市名字为键,等级为值,进行遍历
package com.dx.test;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class TestMap {
public static void main(String[] args) {
// 定义Map集合存储城市与城市对应等级
// 第一个String为键
// 第二个String为值
Map<String,String> map = new HashMap<>();
// 使用map.put()给Map集合添加键值对
map.put("北京","一线");
map.put("上海","一线");
map.put("深圳","一线");
map.put("石家庄","二线");
map.put("唐山","二线");
map.put("保定","三线");
// 键遍历:通过map.keySet()获取所有的键 将map集合的键放到Set集合中进行遍历
Set<String> keySet = map.keySet();
for (String city : keySet) {
// city:代表键(城市) grade:调用map.get()方法根据键获取值(等级)
String grade = map.get(city);
// 将获取到的城市及等级进行输出
System.out.println("城市:"+city+"-等级:"+grade);
}
// 键值对遍历:通过map.entrySet()获取键值对 将键值对放到Set集合中进行遍历
Set<Map.Entry<String, String>> kvs = map.entrySet();
for (Map.Entry<String, String> kv : kvs) {
// 通过kv变量.getKey()获取到城市
String city = kv.getKey();
// 通过kv变量.getValue()获取到等级
String grade = kv.getValue();
// 将获取到的城市及等级进行输出
System.out.println("城市:"+city+"-等级:"+grade);
}
}
}
2.输出所有二线的城市名字
// 输出所有二线的城市名字
// 键遍历:通过map.keySet()获取所有的键
// 将map集合的键放到Set集合中进行遍历输出二线的城市有哪些
Set<String> keySet = map.keySet();
for (String city : keySet) {
// city:代表键(城市) grade:调用map.get()方法根据键获取值(等级)
String grade = map.get(city);
// 调用.equals()方法比较获取的等级是否为二线
// 比较的结果为true的话进入if输出内容
// 比较的结果为false的话不进入if则不会输出
if(grade.equals("二线")){
// 输出二线的城市
System.out.println("二线的城市:"+city);
}
}
// 键值对遍历:通过map.entrySet()获取键值对
// 将键值对放到Set集合中进行遍历输出二线的城市有哪些
Set<Map.Entry<String, String>> kvs = map.entrySet();
for (Map.Entry<String, String> kv : kvs) {
// 通过kv变量.getKey()获取到城市
String city = kv.getKey();
// 通过kv变量.getValue()获取到等级
String grade = kv.getValue();
if(grade.equals("二线")){
// 输出二线的城市
System.out.println("二线的城市:"+city);
}
}
3.打印输出石家庄和保定的城市等级
// 打印输出石家庄和保定的城市等级
// 键遍历:通过map.keySet()获取所有的键
// 将map集合的键放到Set集合中进行遍历输出石家庄和保定的城市等级
Set<String> keySet = map.keySet();
for (String city : keySet) {
// city:代表键(城市) grade:调用map.get()方法根据键获取值(等级)
String grade = map.get(city);
// 调用.equals()方法比较获取的城市是否为石家庄
// 比较的结果为true的话进入if输出内容
// 比较的结果为false的话不进入if则不会输出
if(city.equals("石家庄")){
// 输出石家庄的城市等级
System.out.println("石家庄的城市等级:"+grade);
}
// 调用.equals()方法比较获取的城市是否为保定
// 比较的结果为true的话进入if输出内容
// 比较的结果为false的话不进入if则不会输出
if(city.equals("保定")){
// 输出保定的城市等级
System.out.println("保定的城市等级:"+grade);
}
}
// 键值对遍历:通过map.entrySet()获取键值对
// 将键值对放到Set集合中进行遍历输出石家庄和保定的城市等级
Set<Map.Entry<String, String>> kvs = map.entrySet();
for (Map.Entry<String, String> kv : kvs) {
// 通过kv变量.getKey()获取到城市
String city = kv.getKey();
// 通过kv变量.getValue()获取到等级
String grade = kv.getValue();
if(city.equals("石家庄")){
// 输出石家庄的城市等级
System.out.println("石家庄的城市等级:"+grade);
}
if(city.equals("保定")){
// 输出保定的城市等级
System.out.println("保定的城市等级:"+grade);
}
}
总结:熟知Map常见的方法
通过map.put(K,V)给Map集合添加键值对
通过map.KeySet()获取Map集合中所有的键
通过map.entrySet()获取Map集合中所有的键值对
通过map.get(K)通过键获取Map集合中对应的值
在键值对遍历中通过for循环中变量.getKey()获取键
在键值对遍历中通过for循环中变量.getValue()获取值