java Collections 排序方法

public class Demo {
	public static void main(String[] args) {
		// 创建集合
		List<Integer> list = new ArrayList<Integer>();
		// 添加元素
		for (int i = 1; i <= 5; i++) {
			list.add(i);
		}
		System.out.println(list);// 结果:[1, 2, 3, 4, 5]
		// ----------------排序操作----------------
		// 1、reverse(List list) - 反转指定列表中的元素的顺序
		Collections.reverse(list);
		System.out.println(list);// 结果:[5, 4, 3, 2, 1]
		// 2、shuffle(List list) - 使用默认随机源对指定列表进行置换
		Collections.shuffle(list);
		System.out.println(list);// 结果:[2, 3, 4, 1, 5]
		// 3、sort(List list) - 根据元素的自然顺序 对指定列表按升序进行排序
		Collections.sort(list);
		System.out.println(list);// 结果:[1, 2, 3, 4, 5]
		// 4、sort(List list, Comparator c) - 根据指定比较器产生的顺序对指定列表进行排序
		Collections.sort(list, new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				return o2 - o1;
				/*
				 * o1:表示前面的元素,o2:表示后面的元素 
                 * o1 - o2:前面的元素与后面的元素作比较
                 * o1 - o2:返回正数,表示o1大于o2,交换位置(o1往后移,o2往前移)
				 * o1 - o2:返回0,表示o1等于o2,位置不变 
                 * o1 - o2:返回负数,表示o1小于o2,交换位置(o1往前移,o2往后移)
				 * 附:可以理解为升序(顺序)排序(个人理解)
				 */
				/*
				 * o1:表示前面的元素,o2:表示后面的元素 
                 * o2 - o1:后面的元素与前面的元素作比较
                 * o2 - o1:返回正数,表示o2大于o1,交换位置(o1往后移,o2往前移)
                 * o2 - o1:返回0,表示o2等于o1,位置不变
                 * o2 - o1:返回负数,表示o2小于o1,交换位置(o1往前移,o2往后移)
                 * 附:可以理解为降序(倒序)排序(个人理解)
				 */
			}
		});
		System.out.println(list);// 结果:[5, 4, 3, 2, 1]
		// 5、swap(List list, int i, int j) - 在指定列表的指定位置处交换元素
		Collections.swap(list, 0, 1);
		System.out.println(list);// 结果:[4, 5, 3, 2, 1]
		//6、rotate(List list, int distance) - 根据指定的距离轮换指定列表中的元素
		Collections.rotate(list, 3);
		System.out.println(list);// 结果:[4, 5, 3, 2, 1]
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值