J2SE基础夯实系列之List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用(四)

2014-11-24 09:07:02 · 作者: · 浏览: 2
xOfSubList(List src, List target);//返回源表中第一次出现指定目标列表的起始位置,如果没有这样的列表就返回-1。
10) lastIndexOfSubList(List src, List target);//最后一次的起始位置,没有则返回-1
11) max(Collection coll);//根据元素的自然顺序,返回collection的最大值;
12) max(Collection coll,Comparator comp);//根据比较器产生的顺序,返回最大元素。
13) min同上
14) replaceAll(List list, T oldVal, T newVal);//使用另外一个值替换列表中出现的所有某一指定值。
15) reverseOrder();//逆转comparable接口的对象collection的自然顺序。例如:假设a是一个字符串数组,那么:
Arrays.sort(a, Collections.reverseOrder());将会按照字典逆序排序。
16) reverseOrder(Comparator cmp);返回一个强行逆转比较器的顺序
17) rotate(List list, intdistance);//根据指定的距离轮换列表中的元素。
18) shuffle(List list);//对列表随机排序
19) shuffle(List list, Random rnd);//根据指定的随机源排序
20) swap(List list, int i, int j);//在指定列表的指定位置处交换元素


[java]


package chapter1;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class CollectionsMethod {

/**
* @param args
*/
public static void main(String[] args) {
List collection = new ArrayList();

/*1----两种方式 */
Collections.addAll(collection, 1, 2, 3);
System.out.println(collection.toString());

Integer[] moreInts = {10, 7, 4, 9};
Collections.addAll(collection, moreInts);
System.out.println(collection.toString());

/*2----简单类型下sort的使用 */
Collections.sort(collection);
System.out.println(collection.toString());

/*3----逆序*/
Collections.reverse(collection);
System.out.println(collection.toString());

/*4----复制*/
List copyList = new ArrayList(Arrays.asList( new Object[collection.size()]));
Collections.copy(copyList, collection);
copyList.remove(0);
System.out.println(copyList.size());
System.out.println(copyList.toString());
System.out.println(collection.toString());

/*4----另外一种方式 */
List array = new ArrayList(collection);
System.out.println(array.toString());
System.out.println(collection.toString());

/*5----二分查找,首先把列表排序才行 */
List bsList = new ArrayList();
bsList.add(9);
bsList.add(12);
bsList.add(2);
bsList.add(78);
bsList.add(10);
System.out.println(bsList.toString());
Collections.sort(bsList);
System.out.println(bsList);
int index = Collections.binarySearch(bsList, 20);
System.out.println(index);

/*6----判定两个collection中是否没有相同的元素,返回布尔值*/
System.out.println(Collections.disjoint(bsList, array));

/*7----返回指定对象的个数*/
System.out.println(Collections.frequency(bsList, 10));

/*8----子列表在指定列表中的位置*/
List subList = new ArrayList();
subList.add(9);
subList.add(10);
subList.add(5);
subList.add(1);
System.out.println(Collections.indexOfSubList(bsList, subList));

/*9----返回最大最小值 & 倒序 & 循环移位 & 交换*/
System.out.println(Collections.max(subList));
Collections.reverseOrder();
System.out.println(subList.toString());
Collections.r