类java.util.Collections提供了一些静态方法实现了基于List容器的一些常用算法。
1. sort(List<\T> list)
根据指定比较器产生的顺序对指定列表进行排序。
package javastudy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTest {
public static void main(String[] args) {
List lst = new ArrayList();
lst.add(9);
lst.add(7);
lst.add(8);
lst.add(1);
lst.add(4);
Collections.sort(lst);
System.out.println(lst);
//output: [1, 4, 7, 8, 9]
}
}
2. shuffle(List<\?> list)
使用默认随机源对指定列表进行置换。
package javastudy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTest {
public static void main(String[] args) {
List lst = new ArrayList();
lst.add(9);
lst.add(7);
lst.add(8);
lst.add(1);
lst.add(4);
Collections.shuffle(lst);
System.out.println(lst);
//output(随机排列): [8, 1, 4, 7, 9]
}
}
3. reverse(List<\?> list)
反转指定列表中元素的顺序。
package javastudy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTest {
public static void main(String[] args) {
List lst = new ArrayList();
lst.add(9);
lst.add(7);
lst.add(8);
lst.add(1);
lst.add(4);
Collections.sort(lst);
Collections.reverse(lst);
System.out.println(lst);
//output: [9, 8, 7, 4, 1]
}
}
4. fill(List<\? super T> list, T obj)
使用指定元素替换指定列表中的所有元素。
package javastudy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTest {
public static void main(String[] args) {
List lst = new ArrayList();
lst.add(9);
lst.add(7);
lst.add(8);
lst.add(1);
lst.add(4);
Collections.fill(lst, "smile");
System.out.println(lst);
//output: [Smile, Smile, Smile, Smile, Smile]
}
}
5. copy(List<\? super T> dest, List<\? extends T> src)
将所有元素从一个列表复制到另一个列表。
目标列表的长度至少必须等于源列表。如果目标列表更长一些,也不会影响目标列表中的其余元素。
package javastudy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsTest {
public static void main(String[] args) {
List lst = new ArrayList();
lst.add(9);
lst.add(7);
lst.add(8);
lst.add(1);
lst.add(4);
Collections.sort(lst);
List dest = new ArrayList();
for(int i = 0; i < 5; i++) {
dest.add(i);
}
Collections.copy(dest, lst);
System.out.println(dest);
//output: [1, 4, 7, 8, 9]
}
}
6. binarySearch(List<\? extends Comparable<\? super T>> list, T key)
使用二分搜索法搜索指定列表,以获得指定对象。