LinkedHashMap集合与Hashtable集合
LinkedHashMap集合
我们知道HashMap保证成对元素唯一,并且查询速度很快,可是成对元素存放进去是没有顺序的,那么我们要保证有序,还要速度快这么办
package Demo_Map; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; /* java.util.LinkedHashMap<K,V> entends HashMap<K,V> Map 接口的哈希表和链接列表实现,具有可预的迭代顺序。 底层原理: 哈希表+链表(记录元素的顺序) */ public class Demo01_Map { public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.put("a","a"); map.put("c","c"); map.put("d","d"); map.put("b","b"); map.put("a","q"); System.out.println(map);// key不允许重复, 无序 {a=a, q=q, b=b, c=c, d=d} LinkedHashMap<String, String> hashMap = new LinkedHashMap<>(); hashMap.put("a","a"); hashMap.put("c","c"); hashMap.put("d","d"); hashMap.put("q","q"); hashMap.put("a","v"); System.out.println(hashMap);// key不允许重复,有序 {a=a, c=c, d=d, q=q, v=v} } }
Hashtable集合
package Demo_Map; import java.util.HashMap; import java.util.Hashtable; /* java.util.Hashtable<K,V>集合impLements Map<K,V>接口 HashtabLe:底层也是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢HashMap ;底层是一个哈希表,是一个线程不安全的集合,是多线程的集合,速度快HashMap集合(之前学的所有的集合):可以存储null值,nulL键 HashtabLe集合,不能存储nuLl值, nuLl键 Hashtable和vector集合一样,在jdk1.2版本之后被更先进的集合(HashAap ,ArrayList)取代了Hashtable的子类Properties依然活跃在历史舞台 Properties集合是一个唯—和Io流相结合的集合 */ public class Demo02Hashtable { public static void main(String[] args) { HashMap<String, String> map = new HashMap<>(); map.put(null,"a"); map.put("b",null); map.put(null,null ); System.out.println(map);//{null=null, b=null} Hashtable<String, String> hashtable = new Hashtable<>(); hashtable.put(null,"a");//NullPointerException hashtable.put("b","a");//NullPointerException hashtable.put(null,null);//NullPointerException } }
package Demo_Map;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
/*
java.util.LinkedHashMap<K,V> entends HashMap<K,V>
Map 接口的哈希表和链接列表实现,具有可预的迭代顺序。
底层原理:
哈希表+链表(记录元素的顺序)
*/
public class Demo01_Map {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("a","a");
map.put("c","c");
map.put("d","d");
map.put("b","b");
map.put("a","q");
System.out.println(map);// key不允许重复, 无序 {a=a, q=q, b=b, c=c, d=d}
LinkedHashMap<String, String> hashMap = new LinkedHashMap<>();
hashMap.put("a","a");
hashMap.put("c","c");
hashMap.put("d","d");
hashMap.put("q","q");
hashMap.put("a","v");
System.out.println(hashMap);// key不允许重复,有序 {a=a, c=c, d=d, q=q, v=v}
}
}