集合框架的工具类。
Collections:集合框架的工具类。里面定义的都是 静态方法。因此不需要创建对象,直接类调用即可!
Collections和Collection有什么区别?
Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
它有两个常用的子接口:
List:对元素都有定义索引。有序的。可以重复元素。
Set:不可以重复元素。无序。
Collections是集合框架中的一个工具类。该类中的方法都是静态的
提供的方法中有可以 对list集合进行排序,二分查找等方法。
通常常用的集合都是线程不安全的。因为要提高效率。
输出:
Collections:集合框架的工具类。里面定义的都是 静态方法。因此不需要创建对象,直接类调用即可!
Collections和Collection有什么区别?
Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
它有两个常用的子接口:
List:对元素都有定义索引。有序的。可以重复元素。
Set:不可以重复元素。无序。
Collections是集合框架中的一个工具类。该类中的方法都是静态的
提供的方法中有可以 对list集合进行排序,二分查找等方法。
通常常用的集合都是线程不安全的。因为要提高效率。
如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。
1、sort排序方法:针对List集合
即传入的集合应该是List集合,其中List集合中的元素可以为任意类型,在传进的同时,<T>变为所传入元素的类型,但由于List集合不要求其内部元素有比较性,而sort方法是根据比较排序的。因此在调用sort方法时,为了保证安全,必须使得<T>应具有比较性才能调用sort方法,即应用泛型限定,没有比较性的List集合无法排序,因此要求:<T extends Comparable>,同时由于比较方法可以调用父类的比较方法,因此为<T extends Comparable<? super T>>;这是泛型比较复杂的应用!
调用代码如下:
import java.util.*;
public class Strudent implements Comparable<Strudent>
{
private String name;
Strudent(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public int compareTo(Strudent obj)
{//给Student类提供了比较方法:逆序
return obj.getName().compareTo(this.getName());
}
public String toString()
{//复写了Object中的toString方法,使得能够按照自己想要的形式输出
return name;
}
}
public class SortDemo
{
public static void main(String[] arg)
{
List<Strudent> L=new ArrayList<Strudent>();
L.add(new Strudent("001"));
L.add(new Strudent("002"));
L.add(new Strudent("005"));
L.add(new Strudent("004"));
L.add(new Strudent("003"));
show(L);
Collections.sort(L);
show(L);
}
public static void show(List<? extends Strudent> L)
{
System.out.println(L);
}
}
结果如下;
若List集合中元素本身不具有比较性,也可以传递比较器的方式调用sort方法进行比较:
import java.util.Comparator;
public class myCompare implements Comparator<Strudent>
{
public int compare(Strudent obj1,Strudent obj2)
{//正序
return obj1.getName().compareTo(obj2.getName());
}
}
…………
Collections.sort(L,new myCompare());
show(L);
结果如下:
2、max、min查找方法:针对List集合
跟sort中的定义泛型类似,由于查找最大最小也需要比较,因此需要List集合中的元素具有比较性才能调用该方法!
System.out.println(Collections.max(L,new myCompare()));
输出:
3、binarySearch查找方法:针对List集合
返回值为:
若集合中存在此元素:
Strudent s=new Strudent("002");
System.out.println(Collections.binarySearch(L,s,new myCompare()));
输出:
1
表明查找位置在角标为1的位置上;
若集合中不存在:
Strudent s=new Strudent("006");
System.out.println(Collections.binarySearch(L,s,new myCompare()));
输出:
-6
表明插入点位置应为5:因为-6=-(5)-1;
4、实现集合同步:Collection、Map
5、随机排放
Collections.shuffle(L);