Collection和Collections的区别:
Collection:顶层次单列集合的根接口,它是一个集合,是一个接口
Collections:是针对集合操作的工具类,有一些功能:随机置换,集合里面的二分查找,将集合的元素进行反转
public static void reverse(List<?> list):将集合中的元素顺序反转
public static void huffle(List<?> list):将集合中的元素打乱
Collection:顶层次单列集合的根接口,它是一个集合,是一个接口
Collections:是针对集合操作的工具类,有一些功能:随机置换,集合里面的二分查找,将集合的元素进行反转
Collections重要的方法:
public static <T> int binarySearch(List<T> list, T key)集合的二分查找
public static T max(Collection coll):获取集合中的最大值
public static void reverse(List<?> list):将集合中的元素顺序反转
public static void huffle(List<?> list):将集合中的元素打乱
public static void reverse(List<?> list):将集合中的元素顺序反转
public static void huffle(List<?> list):将集合中的元素打乱
public static void sort(List<T> list)
举例:
public class Demo1 {
public static void main(String[] args) {
List<Integer> arr=new ArrayList<Integer>();
arr.add(56);
arr.add(44);
arr.add(55);
arr.add(33);
arr.add(21);
Collections.sort(arr);
System.out.println(arr);
int s=Collections.binarySearch(arr, 55);
System.out.println(s);
System.out.println(Collections.max(arr));
Collections.reverse(arr);
System.out.println(arr);
Collections.shuffle(arr);
System.out.println(arr);
}
}
public static void sort(List<T> list ,Comparator comparator):可以使用比较器进行排序
举例:
public class Demo2 {
public static <T> void main(String[] args) {
List<Student> arr=new ArrayList<Student>();
Student s1=new Student("曾轶可",28);
Student s2=new Student("毛不易",26);
Student s3=new Student("薛之谦",30);
Student s4=new Student("李荣浩",25);
Student s5=new Student("张嘉译",40);
Student s6=new Student("曾轶可",28);
arr.add(s1);
arr.add(s2);
arr.add(s3);
arr.add(s4);
arr.add(s5);
arr.add(s6);
Collections.sort(arr, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num=s1.getAge()-s2.getAge();
int num1=num==0?s1.getName().compareTo(s2.getName()):num;
return num1;
}
});
for(Student s:arr) {
System.out.println(s.getName()+"---"+s.getAge());
}
}
}
注释:同一个学生对象可以重复