蓝桥杯-排序

数组排序

Arrays.sort(int[] a)

这种形式是对一个数组的所有元素进行排序,并且时按从小到大的顺序。

java 复制代码
package Work;

import java.util.*;

public class Imcomplete {
	public static void main(String args[]) {
		int arr[]=new int [] {1,324,4,5,7,2};
		Arrays.sort(arr);
		for(int x:arr) {
			System.out.print(x+" ");
		}
		
	}
}

Arrays.sort(T[] arr,Comparator<T>c)用Comparator接口实现自定义顺序规则

实现Comparator接口实现降序

java 复制代码
package AAA;

import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Integer[] arr= {1,324,2,5,4,45,8};
		Arrays.sort( arr, 
				new Comparator<Integer>(){
			//重写comparator方法
				@Override
				public int compare(Integer o1, Integer o2) {
					// TODO Auto-generated method stub
					return o2-o1;	
					//返回>0交换。
				}	
		});
		System.out.println("您所输入的数组经过降序处理后为:");
		for(int x:arr) {
			System.out.print(x+" ");
		}
	}

}

如果return o1-o2;则实现升序


Arrays.sort(arr,(o11,o2)->o1-o2)

java引入Lambda简写comparator:Arrays.sort(arr,(o11,o2)->o1-o2)

实现升序

java 复制代码
package AAA;

import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Integer[] arr= {1,324,2,5,4,45,8};
		
		Arrays.sort(arr,(o1,o2)->o1-o2);
		System.out.println("您所输入的数组经过升序处理后为:");
		for(int x:arr) {
			System.out.print(x+" ");
		}
	}

}

集合排序

Collections.sort(int []arr)

这种形式是对一个集合的所有元素进行排序,并且按从小到大的顺序。

java 复制代码
package AAA;

import java.util.*;

public class Pasage {
	public static void main(String args[]) {
		List<Integer> list=new ArrayList();
		list.add(3);
		list.add(1);
		list.add(8);
		list.add(2);
		Collections.sort(list);
		System.out.println("经过升序排列所得结果为:");
		for(int x:list) {
			System.out.print(x+" ");
		}
	}

}
使用Lambda实现降序
java 复制代码
package AAA;

import java.util.*;

public class Pasage {
	public static void main(String args[]) {
		List<Integer> list=new ArrayList();
		list.add(3);
		list.add(1);
		list.add(8);
		list.add(2);
		Collections.sort(list,(o1,o2)->o2-o1);
		System.out.println("经过降序排列所得结果为:");
		for(int x:list) {
			System.out.print(x+" ");
		}
	}

}

Lambda其实是对comparator进行重写。

java 复制代码
package AAA;

import java.util.*;

public class Pasage {
	public static void main(String args[]) {
		List<Integer> list=new ArrayList();
		list.add(3);
		list.add(1);
		list.add(8);
		list.add(2);
		Collections.sort(list,new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				// TODO Auto-generated method stub
				return o2-o1;
			}
			
		});
		System.out.println("经过降序排列所得结果为:");
		for(int x:list) {
			System.out.print(x+" ");
		}
	}

}
相关推荐
汉克老师9 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(2 、寻宝石)
c++·蓝桥杯·蓝桥杯c++·c++蓝桥杯·蓝桥杯选拔赛
汉克老师20 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(5、机甲战士)
c++·算法·蓝桥杯·01背包·蓝桥杯c++·c++蓝桥杯
Jared_devin1 天前
二叉树算法题—— [蓝桥杯 2019 省 AB] 完全二叉树的权值
数据结构·c++·算法·职场和发展·蓝桥杯
aaaweiaaaaaa3 天前
c++基础学习(学习蓝桥杯 ros2有C基础可看)
c++·学习·蓝桥杯·lambda·ros2·智能指针·c++类
汉克老师3 天前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(4、最大空白区)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
scx201310044 天前
P13929 [蓝桥杯 2022 省 Java B] 山 题解
c++·算法·蓝桥杯·洛谷
闻缺陷则喜何志丹6 天前
【数论】P10580 [蓝桥杯 2024 国 A] gcd 与 lcm|普及+
c++·数学·蓝桥杯·数论·洛谷
汉克老师6 天前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(1、求和)
c++·蓝桥杯·蓝桥杯c++·c++蓝桥杯
汉克老师7 天前
第十四届蓝桥杯青少组C++国赛[2023.5.28]第二部分编程题(4、 数独填数)
c++·蓝桥杯·蓝桥杯c++·c++蓝桥杯
闻缺陷则喜何志丹7 天前
【 线段树】P12347 [蓝桥杯 2025 省 A 第二场] 栈与乘积|普及+
数据结构·c++·蓝桥杯·线段树·洛谷