欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA集合框架中的工具类-Collections

程序员文章站 2022-03-09 19:43:08
...

Java集合框架的工具类-Collections

它是一个静态类,不需要创建对象就可以直接使用

常用的方法有:排序,二分查找,获取最大值,获取最小值,逆序,替换,全部替换,随机排序等.


排序:

返回类型                       方法
static <T> void               sort()
import java.util.ArrayList;
import java.util.Collections;

public class Demo {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();

        al.add("cba");
        al.add("abcdef");
        al.add("aaa");
        al.add("bbbb");

        System.out.println("排序之前:"+al);
        Collections.sort(al); //排序
        System.out.println("排序之后:"+al);
    }
}

运行结果:
JAVA集合框架中的工具类-Collections


如果想要按字符串长度进行排序,可以加个比较器
例子:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Demo {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();

        al.add("cba");
        al.add("abcdef");
        al.add("aaa");
        al.add("bbbb");

        System.out.println("排序之前:"+al);
        Collections.sort(al, new ComparatorByLength()); //排序 加了比较器之后
        System.out.println("排序之后:"+al);
    }
}

class ComparatorByLength implements Comparator<String> {

    public int compare(String o1, String o2) {
        int temp = o1.length() - o2.length();
        return temp == 0 ? o1.compareTo(o2) : temp;
    }
}

运行结果:
JAVA集合框架中的工具类-Collections


二分查找:

返回类型                       方法
static <T> int               binarySearch(List<? extends Comparable<? super T>> list, T key) 

这个必须是排完序的才能进行查找

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Demo {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<String>();

        al.add("cba");
        al.add("abcdef");
        al.add("aaa");
        al.add("bbbb");

        System.out.println("排序之前:"+al);
        Collections.sort(al); //排序
        System.out.println("排序之后:"+al);
        int index = Collections.binarySearch(al, "aaa");
        System.out.println("index:"+index);
    }
}

运行结果:
JAVA集合框架中的工具类-Collections
如果查找不存在的 aab 运行结果:
JAVA集合框架中的工具类-Collections
为什么是-2呢?

因为如果有的话,这个数是在位置1, 如果不在, 那就返回这个位置的相反数,并且减1.
这样做是为了避免如果位置是0的话,0的相反数是0.

其它常用方法以及可以去API查找.