Java類集 _集合工具類:Collections

Java類集 _集合工具類:Collections

分類: Java編程 97人閱讀 評論(0) 收藏 舉報

掌握Collections 與 Collection 接口的區別

掌握Collections 類中提供的主要操作方法

在面試題目中有可能會問這樣一個問題,請回答, Collections 和 Collection 的關係。

Collections 類與 Collection 沒有直接的關係,但是與集合中的各個接口都有操作的方法支持。


驗證,空集合的操作:

public static final <T> List <T> emptyList()

public static final <T> Set <T> emptySet()

[java] view plaincopy
  1. import java.util.Collections ;  
  2. import java.util.List ;  
  3. import java.util.Set ;  
  4. public class CollectionsDemo01{  
  5.     public static void main(String args[]){  
  6.         List<String> allList = Collections.emptyList() ;  // 返回空的 List集合  
  7.         Set<String> allSet = Collections.emptySet() ; // 返回空的 List集合  
  8.         allList.add("Hello") ;  // 加入數據  
  9.     }  
  10. };  

如果要想爲集合中增加內容,則肯定使用add() 方法,在Collections 中也提供了專門的增加操作。

public static <T> boolean addAll (Collection<? super T> c, T... elements)

使用了可變參數,所以,可以任意輸入各種類型的數據。

[java] view plaincopy
  1. import java.util.Collections ;  
  2. import java.util.List ;  
  3. import java.util.ArrayList ;  
  4. import java.util.Iterator ;  
  5. public class CollectionsDemo02{  
  6.     public static void main(String args[]){  
  7.         List<String> all = new ArrayList<String>() ;    // 返回空的 List集合  
  8.         Collections.addAll(all,"MLDN","LXH","mldnjava") ;  
  9.         Iterator<String> iter = all.iterator() ;  
  10.         while(iter.hasNext()){  
  11.             System.out.print(iter.next() + "、") ;  
  12.         }  
  13.     }  
  14. };  
選擇何種的加入操作根據人個喜好。
[java] view plaincopy
  1. import java.util.Collections ;  
  2. import java.util.List ;  
  3. import java.util.ArrayList ;  
  4. import java.util.Iterator ;  
  5. public class CollectionsDemo03{  
  6.     public static void main(String args[]){  
  7.         List<String> all = new ArrayList<String>() ;    // 返回空的 List集合  
  8.         Collections.addAll(all,"MLDN","LXH","mldnjava") ;  
  9.         Collections.reverse(all) ;  // 內容反轉  
  10.         Iterator<String> iter = all.iterator() ;  
  11.         while(iter.hasNext()){  
  12.             System.out.print(iter.next() + "、") ;  
  13.         }  
  14.     }  
  15. };  
 在Collections 中也提供了二分檢索的方法:

public static <T> int BinarySearch (List<? extends Comparable <? super T>> list, T key)

完成檢索:

[java] view plaincopy
  1. import java.util.Collections ;  
  2. import java.util.List ;  
  3. import java.util.ArrayList ;  
  4. import java.util.Iterator ;  
  5. public class CollectionsDemo04{  
  6.     public static void main(String args[]){  
  7.         List<String> all = new ArrayList<String>() ;    // 返回空的 List集合  
  8.         Collections.addAll(all,"MLDN","LXH","mldnjava") ;  
  9.         int point = Collections.binarySearch(all,"LXH") ;   // 檢索數據  
  10.         System.out.println("檢索結果:" + point) ;  
  11.           
  12.     }  
  13. };  
替換內容:

public static <T> boolean replaceAll (List <T> list, T oldVal, TnewVal)

執行替換的操作:

[java] view plaincopy
  1. import java.util.Collections ;  
  2. import java.util.List ;  
  3. import java.util.ArrayList ;  
  4. import java.util.Iterator ;  
  5. public class CollectionsDemo05{  
  6.     public static void main(String args[]){  
  7.         List<String> all = new ArrayList<String>() ;    // 返回空的 List集合  
  8.         Collections.addAll(all,"MLDN","LXH","mldnjava") ;  
  9.         if(Collections.replaceAll(all,"LXH","李興華")){// 替換內容  
  10.             System.out.println("內容替換成功!") ;  
  11.         }  
  12.         System.out.print("替換之後的結果:") ;  
  13.         System.out.print(all) ;  
  14.           
  15.     }  
  16. };  
之前曾經說過,使用TreeSet 可以進行排序操作,那麼在Collections 類中也提供了這樣的一個排序操作:

public static <T extends Comparable <? super T>> void sort(List<T> list)

完成捐棄的功能實現

[java] view plaincopy
  1. import java.util.Collections ;  
  2. import java.util.List ;  
  3. import java.util.ArrayList ;  
  4. import java.util.Iterator ;  
  5. public class CollectionsDemo06{  
  6.     public static void main(String args[]){  
  7.         List<String> all = new ArrayList<String>() ;    // 返回空的 List集合  
  8.         Collections.addAll(all,"1、MLDN","2、LXH","3、mldnjava") ;  
  9.         Collections.addAll(all,"B、www.mldn.cn") ;  
  10.         Collections.addAll(all,"A、www.mldnjava.cn") ;  
  11.         System.out.println("排序之前的集合:" + all) ;  
  12.         Collections.sort(all) ;  
  13.         System.out.println("排序之後的集合:" + all) ;  
  14.           
  15.     }  
  16. };  
如果要進行排序的話,則肯定對象所在的類必須實現 Comparable 接口。

交換指定位置的內容:

public static void swap(List <?> list, int i, int j)

完成一個交換內容的操作:
[java] view plaincopy
  1. import java.util.Collections ;  
  2. import java.util.List ;  
  3. import java.util.ArrayList ;  
  4. import java.util.Iterator ;  
  5. public class CollectionsDemo07{  
  6.     public static void main(String args[]){  
  7.         List<String> all = new ArrayList<String>() ;    // 返回空的 List集合  
  8.         Collections.addAll(all,"1、MLDN","2、LXH","3、mldnjava") ;  
  9.         System.out.println("交換之前的集合:" + all) ;  
  10.         Collections.swap(all,0,2) ;  
  11.         System.out.println("交換之後的集合:" + all) ;  
  12.           
  13.     }  
  14. };  

總結:

1、在類集中爲了方便集合的操作提供了 Collections 類,此類與 Collection 接口沒有直接的繼承或實現關係,只是對所有的接口有所支持而已。

2、開發中是否使用此類沒有明確的規定,按照個人的喜好執行即可。

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