Java类集 _集合工具类:Collections

来源:互联网 发布:iskyshop b2b2c源码 编辑:程序博客网 时间:2024/04/28 13:44

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、开发中是否使用此类没有明确的规定,按照个人的喜好执行即可。

原创粉丝点击