1.集合與數組的區別:數組能夠存儲同一種基本類型或同一種類型的對象,長度固定:
集合只存儲對象,長度可變,並且對象能夠是不一樣類型的。java
2.Java.util包數組
3.接口:Collection、Comparator、Iterator、List、Map、Set、Queue安全
4.Java.lang.Iterrable<T>接口是java.util.Collection<E>的父接口性能
5.有序性:全部List集合都有序,Set和Map集合通常不具有有序性的,TreeSet和TreeMap使用了二叉排序樹,具有有序性.net
6.元素重複性:List集合中元素可重複,Set集合元素不能重複,Map集合Key值不能重複,Value值可重複;線程
7.線程安全性:HashMap最多隻容許一條記錄的鍵爲Null,容許多條記錄的值爲Null,是非同步的;Hashtable與HashMap相似,是HashMap的線程安全版,它支持線程的同步,即任一時刻只有一個線程能寫Hashtable,所以也致使了Hashtale在寫入時會比較慢,它繼承自Dictionary類,不一樣的是它不容許記錄的鍵或者值爲null,同時效率較低code
8.查找與插入的速度:底層使用數組實現的ArrayList查詢速度快,底層使用鏈表實現的LinkedList增刪速度快對象
9.總結:對集合的使用主要看集合的特性,若有序性和可重複性;性能問題和線程安全問題blog
map.put方法連續屢次存入鍵名相同的鍵值對排序
Map<String,String> m = new HashMap<>(); m.put("a","a"); m.put("a","b"); System.out.println(m.get("a"));
最後輸出的是b,後面存入的值會覆蓋前面的值。
集合的默認初始長度以及每次增加的長度
ArrayList默認初始長度是10,增加1.5倍,其底層是一個Object數組
另:Java中建立數組是必須指明長度,或經過賦值來指明長度的
參考:http://blog.csdn.net/jdsjlzx/article/details/52675726