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

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);
    }
}

运行结果:
在这里插入图片描述


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

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;
    }
}

运行结果:
在这里插入图片描述


二分查找:

返回类型                       方法
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);
    }
}

运行结果:
在这里插入图片描述
如果查找不存在的 aab 运行结果:
在这里插入图片描述
为什么是-2呢?

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

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

发布了87 篇原创文章 · 获赞 43 · 访问量 4016

猜你喜欢

转载自blog.csdn.net/weixin_42947972/article/details/103147311