學習阿里巴巴開發手冊-5

1.關於hashCode和equals方法處理原則

 1)只要重寫equals,就必須重寫hashCode

 2)set存儲的對象必須重寫hashCode和equals方法

 3)自定義對象作爲Map的鍵,必須重寫hashCode和equals方法

 4)String重寫了hashCode和equals方法。所以直接使用String對象作爲key使用

2.ArrayList的subList結果不可強轉出ArrayList,例如ArrayList<String> rl=(ArrayList)list.subList(0, 1);

  否則拋異常java.lang.ClassCastException: java.util.ArrayList$SubList cannot be cast to java.util.ArrayList

   返回的是ArrayList的內部類SubList它是ArrayList的一個視圖,對SubList子列表的所有操作最終會反應到原列表上。

3.高度注意對原集合元素個數修改,會導致子列表的遍歷,增,刪的拋出的異常。

4.集合轉數組的方法必須使用集合的toArray(T[] array),

 如果使用toArray()返回Object[]類,強轉時出現錯誤
   例如:String[] array = new Stirng[list.size()];

              array=list.toArray(array)

5.工具類

   String[] sarray = new String[]{"YOSD","SDFDS"};
   List alist =Arrays.asList(sarray);  不能使用修改集合方法
   1)alist.add("dsf");出現異常Exception in thread "main" java.lang.UnsupportedOperationException
   此方法體現適配器模式,是轉化接口,後臺數據還是數組。
   2) sarray[0]="chia",list,get(0)所之改變

6 泛型通配符<? extends T>來接收返回的數據,此泛型集合不能使用add方法  使用頻繁往外讀取內容。
  泛型通配符<? super T> 不能使用get方法,接口調用賦值時易出錯。 適合經常往裏插入

7.不要在foreach循環裏進行元素remove/add操作,請使用Iterator方式
8.Compatator滿足三個條件
  1)x,y比較結果和y,x比較結果相反
  2)x>y , y>z 則 x>z
  3) x=y 
  JDK7+  Array/Collections的sort纔可以使用。
9.集合初始化時,指定集合初始值大小
  無法確認時 爲16  否則是 (存儲元素個數/負載因子)+1,可以提高性能
10.推薦使用entrySet遍歷Map類集合KV,效率高,遍歷一遍
   而keySet方式遍歷兩遍
   JDK8,使用Map.foreach方法
11 圖片

12 有序性sort 指遍歷結果是按照某種比較規則依次排列的
   穩定性stability  集合每次遍歷的元素次序一定
   ArrayList 是stability/unsort
   HashMap是unstability/unsort
   TreeMap是stability/sort
13 利用Set元素唯一特性,快速對集合元素去重操作
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章