10. Collections
集合的工具类,包含很多实用的方法
1,对list进行二分查找:前提该集合一定要有序。
int binarySearch(list,key);
//必须根据元素自然顺序对列表进行升级排序
//要求list 集合中的元素都是Comparable 的子类。
int binarySearch(list,key,Comparator);
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(741);
list.add(456);
list.add(123);
list.add(19);
Collections.sort(list); // 保证集合有序
System.out.println(Collections.binarySearch(list, 19)); // 1
System.out.println(Collections.binarySearch(list, 741)); // 4
System.out.println(Collections.binarySearch(list, 0)); // -1
}
}
2,对list集合进行排序。
sort(list);
//对list进行排序,其实使用的事list容器中的对象的compareTo方法
sort(list,comaprator);
//按照指定比较器的比较规则进行排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(741);
list.add(456);
list.add(123);
list.add(19);
System.out.println(list); // [5, 741, 456, 123, 19]
Collections.sort(list); // 升序排序
System.out.println(list); // [5, 19, 123, 456, 741]
}
}
3,对集合取最大值或者最小值。
max(Collection)
max(Collection,comparator)
min(Collection)
min(Collection,comparator)
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(741);
list.add(456);
list.add(123);
list.add(19);
System.out.println(Collections.max(list)); // 741
}
}
4,对list集合进行反转。
reverse(list);
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(741);
list.add(456);
list.add(123);
list.add(19);
System.out.println(list); // [5, 741, 456, 123, 19]
Collections.reverse(list); // 翻转
System.out.println(list); // [19, 123, 456, 741, 5]
}
}
5,对比较方式进行强行逆转。
Comparator reverseOrder();
Comparator reverseOrder(Comparator);
6,对list集合中的元素进行位置的置换。
swap(list,x,y);
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(741);
list.add(456);
list.add(123);
list.add(19);
System.out.println(list); // [5, 741, 456, 123, 19]
Collections.swap(list, 2, 4);
System.out.println(list); // [5, 741, 19, 123, 456]
}
}
7,对list集合进行元素的替换。
如果被替换的元素不存在,那么原集合不变。
replaceAll(list,old,new);
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(741);
list.add(456);
list.add(123);
list.add(19);
System.out.println(list); // [5, 741, 456, 123, 19]
Collections.replaceAll(list, 5, 6);
System.out.println(list); // [6, 741, 19, 123, 456]
Collections.replaceAll(list, 7, 8);
System.out.println(list); // [6, 741, 19, 123, 456]
}
}
8,可以将不同步的集合变成同步的集合。
Set synchronizedSet(Set<T> set)
Map synchronizedMap(Map<K,V> map)
List synchronizedList(List<T> list)