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