1 Map
- 框架图

- Map存放的是一个键值对(key-value)
- 当key相同时,value会被替换
- 通过key可以找到Value
1.1 Map常用方法
//演示map接口常用方法 Map map = new HashMap(); map.put("Curry",null);//OK map.put("Curry", "MVP");//替换 map.put("Stephen", "MVP");//OK map.put("James", null);//OK map.put(null, "James");//OK System.out.println("map=" + map);// remove:根据键删除映射关系 map.remove(null); System.out.println("map=" + map);// get:根据键获取值 Object val = map.get("Curry"); System.out.println("val=" + val);// size:获取元素个数 System.out.println("k-v=" + map.size());// isEmpty:判断个数是否为0 System.out.println(map.isEmpty());//F// clear:清除k-v //map.clear(); System.out.println("map=" + map);// containsKey:查找键是否存在 System.out.println("结果=" + map.containsKey("Curry"));//T
1.2 遍历Map
- 可以直接通过Map得到Key,然后通过Key得到Value来遍历
- 通过entryset来遍历
public static void main(String[] args) { Map map = new HashMap(); map.put("Curry", "MVP"); map.put("Stephen", "MVP"); map.put("James", null); map.put(null, "James"); //第一组: 先取出 所有的Key , 通过Key 取出对应的Value Set keyset = map.keySet(); //(1) 增强for System.out.println("-----第一种方式-------"); for (Object key : keyset) { System.out.println(key + "-" + map.get(key)); } //(2) 迭代器 System.out.println("----第二种方式--------"); Iterator iterator = keyset.iterator(); while (iterator.hasNext()) { Object key = iterator.next(); System.out.println(key + "-" + map.get(key)); } //第二组: 把所有的values取出 Collection values = map.values(); //这里可以使用所有的Collections使用的遍历方法 //(1) 增强for System.out.println("---取出所有的value 增强for----"); for (Object value : values) { System.out.println(value); } //(2) 迭代器 System.out.println("---取出所有的value 迭代器----"); Iterator iterator2 = values.iterator(); while (iterator2.hasNext()) { Object value = iterator2.next(); System.out.println(value); } //第三组: 通过EntrySet 来获取 k-v Set entrySet = map.entrySet();// EntrySet<Map.Entry<K,V>> //(1) 增强for System.out.println("----使用EntrySet 的 for增强(第3种)----"); for (Object entry : entrySet) { //将entry 转成 Map.Entry Map.Entry m = (Map.Entry) entry; System.out.println(m.getKey() + "-" + m.getValue()); } //(2) 迭代器 System.out.println("----使用EntrySet 的 迭代器(第4种)----"); Iterator iterator3 = entrySet.iterator(); while (iterator3.hasNext()) { Object entry = iterator3.next(); //System.out.println(next.getClass());//HashMap$Node -实现-> Map.Entry (getKey,getValue) //向下转型 Map.Entry Map.Entry m = (Map.Entry) entry; System.out.println(m.getKey() + "-" + m.getValue()); } }
2 HashMap
3 Hashtable
4 Properties