Map的主要实现类:
--HashMap:Map的主要实现类(掌握)
--LinkedHashMap:使用链表维护添加进Map中的顺序,遍历时按添加时的顺序遍历
--TreeMap:按照添加进Map中的元素key的制定属性进行排序。(了解)、
--Hashtable 古老的实现类不建议使用
--Properties:常来处理属性文件,键和值都是String类型(掌握)
常用方法(不加泛型)
Map map = new HashMap<>();
//Object put(Object key,Object value) 向Map中添加一个元素
map.put("A",123);
map.put("B",456);
map.put("C",789);
//Object remove(Object key) 按照制定为key删除一条记录
map.remove("C");
//void putAll(Map t) 将t中的全部记录加入当前Map集合中
Map t = new HashMap<>();
t.put("D",741);
map.putAll(t);
//void clear() 清空Map中的记录
t.clear();
//Object get(Object key) 获取制定key值对应的value值,如果没有此key值则返回null
Object value = map.get("A");
//boolean containsKey(Object key) 是否包含key
boolean flag1 = map.containsKey("A");
//boolean containsValue(Object value) 是否包含value
boolean flag2 = map.containsValue("B");
//int size() 返回当前Map的长度
System.out.println(map.size());
//boolean isEmpty() 判断当前Map集合是否为空
System.out.println(map.isEmpty());
HashMap
1、Key使用Set集合存放,Key不可重复
2、Value使用Collection存放,可以重复
3、一个Key-Value对是一个Entry,Entry用Set存放不可重复。
4、向HashMap添加一个Key-Value记录,会调用Key所在类的equals()方法,判断Map中是否已存在相同Key的记录,如果有则覆盖之前的记录,存放最后一次存放的Key-Value记录
Map的遍历
一、遍历Key集
Set key = map.keySet();
for(Object obj:key){
System.out.println(obj);
}
二、遍历Value集
Collection values = map.values();
Iterator iterator = values.iterator();
while(iterator.hasNext()){
Syetem.out.println(iterator.next());
}
三、遍历key-value对
方式一、先遍历key集,再根据指定key得到对应value值
Set key = map.keySet();
for(Object obj:key){
System.out.println(obj+"-"+map.get(obj));
}
方式二、通过Entry遍历
Set set2 = map.entrySet();
for(Object obj:set2){
Map.Entry entry = (Entry)obj;
System.out.println(entry.getKey()+"-"+entry.getValue());
}
方式三、
for(Object entry:map.entrySet()){
Map.Entry et = (Entry) entry;
System.out.println(et.getKey()+"-"+et.getValue());
}
使用Properties处理属性文件
public void testMap3() throws IOException{
Properties properties = new Properties();
// 加载属性文件
properties.load(TestMap.class.getResourceAsStream("/jdbc.properties"));
// 获取用户名和密码
String user = properties.getProperty("user");
String password = properties.getProperty("password");
System.out.println(user);
System.out.println(password);
}