java.util.Collections类

来源:互联网 发布:网络维护员工资会涨吗 编辑:程序博客网 时间:2024/05/01 16:31

java.util.Collections

作者:zccst

 

Collections

java.util.Collections类中定义了多种集合操作方法,实现了对集合操作方法,实现了对集合元素的排序、取极值、批量拷贝、集合结构转换、循环移位以及匹配性检查等功能,常用static方法如下:

 

public static void sort(List list);             //自然排序,list必须实现Comparable接口

public static void reverse(List list);           //按照自然排序,进行反转,即降序

public static void shuffle(List list);           //混排,与sort相反,完全打乱排列顺序

public static void copy(List dest, listsrc);     //覆盖,如果dest更长,则其剩余元素不受影响

public static void fill(List list, Objecto);      //使用指定元素替换指定列表中的所有元素

public static ArrayList list(Enumeratione);     //

public static int frequency(Collection c,Object o);  //出现的次数(频率)

public static int binarySearch(List list,Object o)  //对顺序的List,折半查找特定对象

public static T min(Collection coll);           //最小值

public static T max(Collection coll);           //最大值

public static void rotate(List list, intdistance);   //根据指定的距离循环移动指定列表中的元素

 

调用时,用Collections.sort()方式,其他相似。

注:所有可以“排序”的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法:

public int compareTo(Object obj);

该方法返回正数、零和负数,分别表示当前对象大于、等于和小于obj

实现了Comparable接口的类通过实现comparaTo方法,从而确定该类对象的排序方式。

 

例如:TestCollections.java

import java.util.Vector;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Enumeration;

 

public class TestCollections{

       publicstatic void main(String[] args) {

              ArrayListalist = new ArrayList();

              alist.add(75);

              alist.add(38);

              alist.add(21);

              alist.add(4);

              alist.add(12);

 

              System.out.println("原列表: " + alist);

              Collections.sort(alist);

              System.out.println("排序后: " + alist);

              Collections.reverse(alist);

              System.out.println("逆序后: " + alist);

              Collections.shuffle(alist);

              System.out.println("混排后: " + alist);

              Collections.rotate(alist,2);

              System.out.println("移位后: " + alist);       

             

              ArrayListblist = new ArrayList();

              blist.add(55);

              blist.add(66);

              System.out.println("新列表: " + blist);

              Collections.copy(alist,blist);

              System.out.println("拷贝后: " + alist);

 

              System.out.println("列表中出现元素66的次数: " + Collections.frequency(alist,66));

              System.out.println("列表中元素的最大值: " +Collections.max(alist));

              System.out.println("列表中元素的最小值: " +Collections.min(alist));

 

              Enumerationen = createDemoEnumeration();

              ArrayListclist = Collections.list(en);

              System.out.println("Enumeration->ArrayList:" + alist);

       }

      

       publicstatic Enumeration createDemoEnumeration(){

              Vectorv = new Vector();

              v.add("Tom");       

              v.add("Billy");             

              v.add("Jenny");            

              returnv.elements();      

       }

}

 

输出结果:

原列表: [75, 38, 21, 4, 12]

排序后: [4, 12, 21, 38, 75]

逆序后: [75, 38, 21, 12, 4]

混排后: [12, 21, 4, 38, 75]

移位后: [38, 75, 12, 21, 4]

新列表: [55, 66]

拷贝后: [55, 66, 12, 21, 4]

列表中出现元素66的次数: 1

列表中元素的最大值: 66

列表中元素的最小值: 4

Enumeration->ArrayList: [55,66, 12, 21, 4]