Java – Collections集合工具类
简介
Collections是由Java提供的专用于 List 类数组的工具类,所有方法都为静态方法,无需创建实例对象
Collections常用API
addAll()
语法:
public static
说明:
提供一个List类,并传入多个成员,即可,返回 boolean.
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk"); // => true
shuffle()
语法:
public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random rnd)
说明:
打乱List里面的成员数据
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk");
Collections.shuffle(list);
sort()
语法:
public static <T extends Comparable<? super T>> void sort(List<T> list)
public static <T> void sort(List<T> list, Comparator<? super T> c)
说明:
对数组进行默认排序,或自定义规则排序
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk");
Collections.sort(list);
Collections.sort(list, (o1,o2) -> o1.length - o2.length);
binarySearch()
语法:
public static <T>
int binarySearch(List<? extends Comparable<? super T>> list, T key)
说明:
以二分查找法查找元素
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk");
Collections.binarySearch(list,“123”);
copy()
语法:
public static <T> void copy(List<? super T> dest, List<? extends T> src)
说明:
拷贝集合中的元素
ArrayList<String> list = new ArrayList<>();
ArrayList<String> dist = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk");
Collections.addAll(dist, "", "", "");
Collections.copy(dist,list);
注意:源集合中的数据会覆盖新集合,如果源集合数量大于新集合,会报错。
fill()
语法:
public static <T> void fill(List<? super T> list, T obj)
说明:
使用指定的元素填充集合
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk");
Collections.copy(list,"other");
max/min()
语法:
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
说明:
根据默认的自然排序获取最大最小值
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk");
Collections.max(list);
Collections.min(list);
String中默认是按照字母的abcdefg顺序进行排列的
如果默认的规则无法满足,可以自己指定规则,使用匿名内部类或Lambda自定义比对规则。
Collections.max(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
swap()
语法:
public static void swap(List<?> list, int i, int j)
说明:
交换集合中的指定位置的元素
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, "abc", "123", "kkk");
Collections.swap(list, 2, 3);
共有 0 条评论