您的位置:首页 > 编程语言 > Java开发

Java类集 _集合工具类:Collections

2011-09-09 15:25 323 查看
掌握Collections 与 Collection 接口的区别

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

在面试题目中有可能会问这样一个问题,请回答, Collections 和 Collection 的关系。

Collections 类与 Collection 没有直接的关系,但是与集合中的各个接口都有操作的方法支持。



验证,空集合的操作:

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

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

import java.util.Collections ;
import java.util.List ;
import java.util.Set ;
public class CollectionsDemo01{
public static void main(String args[]){
List<String> allList = Collections.emptyList() ;	// 返回空的 List集合
Set<String> allSet = Collections.emptySet() ;	// 返回空的 List集合
allList.add("Hello") ;	// 加入数据
}
};

如果要想为集合中增加内容,则肯定使用add() 方法,在Collections 中也提供了专门的增加操作。

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

使用了可变参数,所以,可以任意输入各种类型的数据。

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo02{
public static void main(String args[]){
List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
Collections.addAll(all,"MLDN","LXH","mldnjava") ;
Iterator<String> iter = all.iterator() ;
while(iter.hasNext()){
System.out.print(iter.next() + "、") ;
}
}
};
选择何种的加入操作根据人个喜好。

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo03{
public static void main(String args[]){
List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
Collections.addAll(all,"MLDN","LXH","mldnjava") ;
Collections.reverse(all) ;	// 内容反转
Iterator<String> iter = all.iterator() ;
while(iter.hasNext()){
System.out.print(iter.next() + "、") ;
}
}
};
在Collections 中也提供了二分检索的方法:

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

完成检索:

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo04{
public static void main(String args[]){
List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
Collections.addAll(all,"MLDN","LXH","mldnjava") ;
int point = Collections.binarySearch(all,"LXH") ;	// 检索数据
System.out.println("检索结果:" + point) ;

}
};
替换内容:

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

执行替换的操作:

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo05{
public static void main(String args[]){
List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
Collections.addAll(all,"MLDN","LXH","mldnjava") ;
if(Collections.replaceAll(all,"LXH","李兴华")){// 替换内容
System.out.println("内容替换成功!") ;
}
System.out.print("替换之后的结果:") ;
System.out.print(all) ;

}
};
之前曾经说过,使用TreeSet 可以进行排序操作,那么在Collections 类中也提供了这样的一个排序操作:

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

完成捐弃的功能实现

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo06{
public static void main(String args[]){
List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
Collections.addAll(all,"1、MLDN","2、LXH","3、mldnjava") ;
Collections.addAll(all,"B、www.mldn.cn") ;
Collections.addAll(all,"A、www.mldnjava.cn") ;
System.out.println("排序之前的集合:" + all) ;
Collections.sort(all) ;
System.out.println("排序之后的集合:" + all) ;

}
};
如果要进行排序的话,则肯定对象所在的类必须实现 Comparable 接口。

交换指定位置的内容:

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

完成一个交换内容的操作:

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo07{
public static void main(String args[]){
List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
Collections.addAll(all,"1、MLDN","2、LXH","3、mldnjava") ;
System.out.println("交换之前的集合:" + all) ;
Collections.swap(all,0,2) ;
System.out.println("交换之后的集合:" + all) ;

}
};

总结:

1、在类集中为了方便集合的操作提供了 Collections 类,此类与 Collection 接口没有直接的继承或实现关系,只是对所有的接口有所支持而已。

2、开发中是否使用此类没有明确的规定,按照个人的喜好执行即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: