java集合工具类---Collections/Arrays

/*
 *Collections用于操作List/Set的工具类
 *Arrays用于操作数组的工具类
 */
package pack;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;

public class Main {


    public static void main(String[] args) {
        //method_Collections();
        method_Arrays();
    }


    public static void sys(Object obj) {
        System.out.println(obj);
    }

    public static void method_Collections() {
        /*父类引用指向子类对象,一个接口有多种实现*/
        List<String> list = new ArrayList<String>();
        list.add("abcd");
        list.add("cd");
        list.add("bcd");

        Collections.sort(list);    //自然比较
        //Collections.sort(list,new MyComparator()); //集合工具类,排序,不能用于Set
        //sys(Collections.max(list));

        sys(list);
        //binarySearch二分查找找出索引位置,使用前集合必须有序
        int index = Collections.binarySearch(list, "bcd");
        sys(index);

        Collections.fill(list, "pp");  //将集合中所有元素全替换为pp

        Collections.replaceAll(list, "pp", "cd");  //将指定元素替换

        Collections.reverse(list);   //翻转




        /*//reverseOrder将TreeSet的自然排序取反,reverseOrder(new MyComparator())将比较器取反
        TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());
        TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new MyComparator()));  
        ts.add("abc");
        ts.add("kk");
        ts.add("bbbn");
        sys(ts);*/
    } 

    public static void method_Arrays() {  //数组方法很少,用Arrays工具或者将数组转换为List大有好处
        int[] arr = {8,5,4,3,1};
        //sys(Arrays.binarySearch(arr, 4));//binarySearch二分查找找出索引位置

        int[] arr1 = Arrays.copyOf(arr, 3);  //将arr中3个元素复制到arr1中
        int[] arr2 = Arrays.copyOfRange(arr, 1, 4); //将arr中从1到3复制到arr2中


        sys(Arrays.equals(arr, arr1));  //比较两个数组

        //Arrays.fill(arr, 1);  //将数组中元素全部换为1
        //Arrays.fill(arr, 1,3,6);//将数组中下标为1-2的元素换为6

        //Arrays.sort(arr);  //数组中元素排序
        Arrays.sort(arr,1,3);  //将数组中下标为1-2的元素排序

        String s = Arrays.toString(arr); //将数组变为字符串



/*如果数组中元素是对象,变为集合时,数组中元素转为集合中元素                ---数组变集合---
如果数组中元素是基本数据类型,如int,变为集合时,该数组作为集合中元素存在,所以不要用int而用Integer
        Integer[] array1 = {2,3,5,7};  //将整形数组变为List集合
        List<Integer> list1 = Arrays.asList(array1);

        String[] array = {"abc","kkk","psh"};
        List<String> list = Arrays.asList(array); //将字符串数组变为List集合
        //list.add("he");//不可以增删,数组长度是不变的
        sys(list.contains("kkk"));*/




        /*                                                           ---集合变数组---
        List<String> list = new ArrayList<String>();
        list.add("abcd");
        list.add("cd");
        list.add("bcd");
        String[] arr5 = list.toArray(new String[list.size()]);     
        sys(Arrays.toString(arr5));*/


    }

}
class MyComparator implements Comparator<String> {
    public int compare(String s1,String s2) {
        if(s1.length()>s2.length())
            return 1;
        if(s1.length()<s2.length())
            return -1;
        return s1.compareTo(s2);
    }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。