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);
}
}
运行结果:
如果想要按字符串长度进行排序,可以加个比较器
例子:
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查找.
下一篇: 不是高手也能彻底清除隐藏的病毒文件