嘮嘮SE的集合-10——Collections工具類

10. Collections

集合的工具類,包含不少實用的方法java

1,對list進行二分查找:前提該集合必定要有序。

int binarySearch(list,key);工具

//必須根據元素天然順序對列表進行升級排序spa

//要求list 集合中的元素都是Comparable 的子類。code

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);io

//按照指定比較器的比較規則進行排序class

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)import

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)

相關文章
相關標籤/搜索