- sort(List list)排序
- sort(List list, Comparator<? super T> c)根据指定比较器产生的顺序对指定列表进行排序
package day27;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class Student{
String name;
int no;
public Student(String name,int no){
this.name = name;
this.no = no;
}
}
public class Sort {
public static void main(String[] args){
List<Student> list = new ArrayList<>();
Student s = new Student("张三",1);
Student s1 = new Student("王五",3);
Student s2 = new Student("李四",2);
list.add(s);
list.add(s1);
list.add(s2);
System.out.println("排序前");
for (int i = 0; i < list.size(); i++) {
System.out.println("我是" + list.get(i).name + "学号是"+ list.get(i).no);
}
Comparator<Student> c = new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//你首先设置你要比较的东西
//具体是把参数中的Object强制转换成你要比较的东西,这里是两个Student类
//这里的s1,s2与上面的s1,s2一点关系都没有,只是抽象的前者与后者的关系
//如果前者的学号大于后者的学号,就是前者大于后者,返回1系统就会识别是前者大于后者
if (o1.no > o2.no) {
return 1;
}
//小于同理
if (o1.no < o2.no) {
return -1;
}
//如果返回0则认为前者与后者相等
return 0;
}
};
Collections.sort(list, c);
System.out.println("排序后");
for (int i = 0; i < list.size(); i++) {
System.out.println("我是" + list.get(i).name + "学号是"+ list.get(i).no);
}
}
}
- reverse(List<?> list)将集合反转
- shuffle(List<?> list)随机打乱集合顺序
- swap(List<?> list, int i, int j)在指定列表的指定位置处交换元素。
- fill(List<? super T> list, T obj)将元素obj替换集合list所有元素
// 6. fill(List<? super T> list, T obj)使用指定元素(obj)替换指定列表(List)中的所有元素
@Test
public void fill() {
List<Object> l = new ArrayList<>();
for (int i = 0; i < 5; i++) {
l.add("a");
}
System.out.println("替换前");
System.out.println(l);
Integer a = 1;
Collections.fill(l, a);
System.out.println("替换后");
System.out.println(l);
}
- copy(List<? super T> dest, List<? extends T> src)将集合src复制到dest中
//进行集合复制时,目标集合的元素个数要大于等于源集合的元素的个数
@Test
public void copy(){
ArrayList<Object> arrayList1 = new ArrayList<>();
arrayList1.add("aaa");
arrayList1.add("bbb");
arrayList1.add("ccc");
arrayList1.add("ddd");
arrayList1.add("eee");
System.out.println(arrayList1.size());
ArrayList<Integer> arrayList2 = new ArrayList<>();
arrayList2.add(1);
arrayList2.add(2);
arrayList2.add(3);
arrayList2.add(4);
arrayList2.add(5);
arrayList2.add(6);
System.out.println(arrayList1.size());
System.out.println("复制前");
System.out.println(arrayList1);
Collections.copy(arrayList1, arrayList2);
System.out.println("复制后");
System.out.println(arrayList1);
}
1、3、4、5代码实现
package day27;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import org.junit.Test;
//1. sort(List<T> list)排序
//2. sort(List<T> list, Comparator<? super T> c)根据指定比较器产生的顺序对指定列表进行排序
//3. reverse(List<?> list)将集合反转
//4. shuffle(List<?> list)随机打乱集合顺序
//5. swap(List<?> list, int i, int j)在指定列表的指定位置处交换元素。
public class CollectionsText {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 20; i++) {//随机出20个数据存入集合里
list.add(random.nextInt(100));
}
// 1. sort(List<T> list)排序
System.out.println("排序前");
System.out.println(list);
Collections.sort(list);
System.out.println("排序后");
System.out.println(list);
// 3. reverse(List<?> list) 反转
System.out.println("反转前");
System.out.println(list);
Collections.reverse(list);
System.out.println("反转后");
System.out.println(list);
// 5. swap(List<?> list, int i, int j) 在指定列表的指定位置处交换元素
System.out.println("交换前");
System.out.println(list);
Collections.swap(list, 0, 3);
System.out.println("交换后");
System.out.println(list);
// 4. shuffle(List<?> list)随机置换(使用默认源对指定列表进行置换)
System.out.println("随机置换前");
System.out.println(list);
Collections.shuffle(list);
System.out.println("随机置换后");
System.out.println(list);
}
}
- min(Collection<? extends T> coll)求最大
- max(Collection<? extends T> coll, Comparator<? super T> comp)求最小
@Test
public void test1() {
HashSet<Integer> set = new HashSet<Integer>();
set.add(23);
set.add(13);
set.add(233);
set.add(12);
set.add(6);
set.add(88);
int min = Collections.min(set);
System.out.println(min);
int max = Collections.max(set);
System.out.println(max);
}