参考
https://blog.csdn.net/u013398759/article/details/77679632
https://www.cnblogs.com/hanlk/p/11229058.html
键值对数据遍历
(1)将Map中所有的键装到Set集合中返回
//public Set<K> keySet(); Set<K> set=map. keySet()
获得所有key的集合
Set<String> keys = map.keySet();
Iterator<String> it = keys.iterator(); // 获得key的迭代器
while (it.hasNext()) {
String key = it.next(); // 迭代器是key的迭代器
}
(2)返回集合中所有的value的值的集合
// public Collection<V> values(); Collection<V> c=map.values()
获得所有的值values-->返回值为List
for (String value : map.values()) {
System.out.println(value);
}
该方法不正确,会报错
ArrayList<String> ls= (ArrayList<String>) map.values();
如下正解
List<String> ls = new ArrayList<String>(map.values());
(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
// public Set<Map.Entry<K,V>> entrtSet(); Set<Map.Entry<K,V>> entrys=map.entrySet()
// 遍历map的第一种方式
Set<Map.Entry<String, String>> entry = map.entrySet(); Iterator<Map.Entry<String, String>> ite = entry.iterator(); while (ite.hasNext()) { Map.Entry<String, String> en = ite.next(); System.out.println(en.getKey() + " --> " + en.getValue()); } // 遍历map的第二种方式 for (Map.Entry<String, String> en : map.entrySet()) { System.out.println(en.getKey() + " --> " + en.getValue()); }
举例
Map<String, List<Object>> map = new HashMap<String, List<Object>>(); List<Object> list = new ArrayList<>(); list.add(123); list.add(true); list.add(3.456); list.add("打开空调"); list.add("开空调"); list.add("启动空调"); map.put("openac", list); List<Object> list1 = new ArrayList<>(); list1.add(0); list1.add(false); list1.add(0.456); list1.add("关闭空调"); list1.add("关空调"); list1.add(" "); map.put("closeac", list1); Log.d("MyService", "has map ----"); //(2)返回集合中所有的value的值的集合 Collection<List<Object>> values = map.values(); // List<List<Object>> values = new ArrayList<List<Object>>(map.values()); for (List<Object> value : values) { Log.d("MyService", "has value ----" + value); if (value.contains("开空调")) { Log.d("MyService", "has 开空调 ----"); } } //(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回 Set<Map.Entry<String, List<Object>>> entries = map.entrySet(); for (Map.Entry<String, List<Object>> entry : entries) { String key = entry.getKey(); List<Object> value = entry.getValue(); Log.d("MyService", "key:" + key + " and value:" + value); }