蓝桥杯-排序

数组排序

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+" ");
		}
	}

}
相关推荐
_饭团1 小时前
字符串函数全解析:12 种核心函数的使用与底层模拟实现
c语言·开发语言·学习·考研·面试·蓝桥杯
FirstFrost --sy4 小时前
C语言常见概念入门指南
职场和发展·蓝桥杯
lisanndesu5 小时前
第十五届蓝桥杯 C++A组
c++·蓝桥杯
Rainy Blue8835 小时前
前缀和与差分(蓝桥杯高频考点)
数据结构·算法·蓝桥杯
Ivanqhz6 小时前
图着色寄存器分配算法(Graph Coloring)
开发语言·javascript·python·算法·蓝桥杯·rust
仰泳的熊猫12 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
nglff1 天前
蓝桥杯抱佛脚第一天|简单模拟,set,map的使用
算法·职场和发展·蓝桥杯
仟濹1 天前
【算法打卡day27(2026-03-19 周四)】蓝桥云课中Lv.1难度中的绝大部分题
算法·蓝桥杯
Trouvaille ~1 天前
【优选算法篇】快速排序模型——从数组划分到快速选择
算法·leetcode·青少年编程·面试·蓝桥杯·快速排序·基础入门
念越1 天前
自动化测试入门指南:Selenium环境搭建+第一个实战案例
自动化测试·selenium·测试工具·蓝桥杯