1、Map
1.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复
它没有继承Collection接口
public static void main(String[] args) {
//HashMap 异步 非安全的
Map<String,Object> map = new HashMap<String,Object>();
map.put("1", "a");
map.put("1", "b");
map.put("2", "c");
map.put("3", "d");
//遍历方式1 先获取set集合所有键,再通过键得到值,一起遍历
Set<String> keySet = map.keySet();
for (String string : keySet) {
System.out.println(string+"="+map.get(string));
}
//遍历方式2 直接通过entrySet获得键值对再遍历出来
System.out.println("-------------");
Set<java.util.Map.Entry<String, Object>> entrySet = map.entrySet();
for (java.util.Map.Entry<String, Object> entry : entrySet) {
System.out.println(entry);
}
//也可通过迭代器遍历
System.out.println("--------------");
Iterator<java.util.Map.Entry<String, Object>> ite = entrySet.iterator();
while(ite.hasNext()) {
System.out.println(ite.next());
}
//HashMap的键和值都可以用null
System.out.println("---------------");
map.put(null, null);
for (java.util.Map.Entry<String, Object> entry : entrySet) {
System.out.println(entry);
}
}
效果图:
1.2遍历
1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)
//map集合的特点 无序,键值对,键不可以重复,值考科一重复
Map<String,Object> map =
new HashMap<String,Object>();
map.put("哒吥遛", "W");
map.put("哎克斯", "X");
map.put("蝌", "K");
map.put("诶", "A");
//map集合的遍历方式 1.获取map集合中的所有key的set集合,再通过捡
Set<String> keySet = map.keySet();
for (String key : keySet) {
//System.out.println(key);
//通过键获取对应的值
Object v = map.get(key);
System.out.println(key+"="+v);
}
1.2.2 先取出保存所有Entry的Set,再遍历此Set即可 (重要点)
Set<Entry<String, Object>> entrySet = map.entrySet();
for (Entry<String, Object> entry : entrySet) {
System.out.println(entry);
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
1.3HashMap与HashTable之间的区别
HashTable的键或值为空的话会报空指针的错误
异步 非安全的 hashmap 键可以为null,值也可以为null