蓝桥杯-排序

数组排序

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

}
相关推荐
minos.cpp12 天前
从厨房到代码台:用做菜思维理解iOS开发 - Swift入门篇①
ios·蓝桥杯·swift
岁忧12 天前
第十六届蓝桥杯C/C++程序设计研究生组国赛 国二
c语言·c++·算法·蓝桥杯
嗨信奥编程13 天前
2023年蓝桥杯青少第十四届蓝桥杯Scratch省赛中级组真题——小狗避障
青少年编程·蓝桥杯
Yingye Zhu(HPXXZYY)14 天前
P12894 [蓝桥杯 2025 国 Java B] 智能交通信号灯
c++·蓝桥杯
MoRanzhi120316 天前
103. 2017年蓝桥杯省赛 - 日期问题(困难)- 暴力枚举
python·蓝桥杯·枚举算法·时间格式转换·暴力搜索·日期处理·2017省赛
jinmo_C++18 天前
第十六届蓝桥杯_省赛B组(C).可分解的正整数
c语言·职场和发展·蓝桥杯
骑驴看星星a20 天前
P10987 [蓝桥杯 2023 国 Python A] 火车运输
职场和发展·蓝桥杯
a东方青21 天前
[蓝桥杯 2023 国 B] AB 路线 (BFS)
c++·算法·职场和发展·蓝桥杯·宽度优先
咚咚轩22 天前
蓝桥杯第十届国B 求值
蓝桥杯
a.30223 天前
蓝桥杯等竞赛场景下 C++ 的时间与空间复杂度深度解析
c++·蓝桥杯