JAVA基础 day17 Collections工具类和Arrays工具类的使用 静态导入和可变参数的学习

Collections:工具类,对集合进行操作,里面全为静态方法,所以可以直接用类名.方法()调用方法。

sort方法:泛型继承了Comparable类,所以可以对List集合进行子自然排序。(public static

import java.util.*;
class CollectionsDemo
{
    public static void main(String[]args)
    {
        List<String>l=new ArrayList<String>();

        l.add("sdff");
        l.add("qqqq");
        l.add("ferftr");
        l.add("afewe");
        l.add("zero");
        System.out.println(l);
        Collections.sort(l);
        System.out.println(l);
    }
}

当我们需要让对象按照我们的排序方法进行排序时,就需要自己实现比较器。
实现按照字符串长度排序:

import java.util.*;
class CollectionsDemo {
    public static void main(String[]args)
    {
        List<String>l=new ArrayList<String>();

        l.add("sdff");
        l.add("qqqq");
        l.add("ferftr");
        l.add("afewe");
        l.add("zero");
        l.add("z");
        l.add("go");
        System.out.println(l);
        Collections.sort(l,new StrlengthCmp());
        System.out.println(l);
    }
}
class StrlengthCmp 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);
    }
}

max方法,获取集合中的最大值。(结果看元素之间比较方式是什么)。

binarySearch方法,使用二分查找获得指定对象的角标。

fill方法,将集合中所有元素替换成指定元素。

replaceAll方法,使用新值代替集合中的原值。

reverse方法,反转集合中的元素。

reverseOrder():返回值是一个比较器,可以强行逆转集合的顺序。

import java.util.*;
class CollectionsDemo
{
    public static void main(String[]args)
    {
        TreeSet<String>ts=new TreeSet<String>(Collections.reverseOrder());
        //这里传入reverseOrder方法,返回比较器,对自然排序进行强行逆转

        ts.add("a");
        ts.add("b");
        ts.add("c");
        ts.add("d");
        ts.add("f");
        ts.add("g");

        System.out.println(ts);

    }
![结果](http://img.blog.csdn.net/20161014202835879)   
如果想根据自己的排序方式进行逆转,只需要将自己的定义的比较器作为参数传入reverseOrder方法就可以实现。

SynList()方法,将线程不同步(不安全)的集合作为参数,返回一个线程同步(安全)的集合。

Arrays:用来操作数组的工具类,里面都是静态方法。
asList方法,将数组变成集合。(将数组变成集合,不可以用集合的增添方法,因为数组的长度是固定的)

如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转换成集合中的元素。
如果数组中的元素都是基本数据类型,那么变成集合时,会将该数组作为集合中的元素存在。

Collection接口中的toArray方法,将集合变成数组。

JDK1.5之后,出现了可变参数,传递的参数可变。
可变参数只能在形参列表的最后,也就是说,一个方法中最多有一个长度可变的参数。

class VariableDemo
{
    public static void main(String []args)
    {
        show("as","fds","dfg");
    }
    public static void show(String...arr)
    {
        for (int i=0;i<arr.length;i++)
        {
            System.out.println(arr[i]);
        }
    }
}

静态导入 import static 包名.类名;

例如:
import java.util.*;
这时使用Arrays工具类里的sort()方法,Arrays.sort();
当静态导入后
import static java.util.Arrays;
就可以直接使用sort();

你可能感兴趣的:(java)