Collections工具类

  1. sort(List list)排序
  2. 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);
		}
	}

}


  1. reverse(List<?> list)将集合反转
  2. shuffle(List<?> list)随机打乱集合顺序
  3. swap(List<?> list, int i, int j)在指定列表的指定位置处交换元素。
  4. 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);
	}
  1. 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);
		
	}
	
}

  1. min(Collection<? extends T> coll)求最大
  2. 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);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值