我有个list集合 ,我想取出前三个最大数据 ,如何取
先排序, 升序取集合后3个数据, 降序取集合前3个数据
package cnblogs; import java.util.Arrays; public class MaxThree { public static void main(String[] args) { int[] arr = new int[3];//有序数组,用来存前3个最大数的,从小到大排 int[] list = {12,3,5,6,3,6,80,30,20,43};//测试数组 Arrays.asList(list)就可以转成list int t; int j; for(int i = 0; i < list.length; i++){//遍历一遍是需要的 t = list[i];//第N个数 if(t > arr[0]){//和有序数组里面最小的比比,如果大就把那个最小的换成它 arr[0] = t; j = 1; //但是换完了,不能保证它是这个数组里面最小的 //所以它要和前面那个比比,如果比前面那个大,就再换,直到不如前面那个大或者到头了 while(j < arr.length && arr[j] < arr[j-1]){ t = arr[j-1]; arr[j-1] = arr[j]; arr[j] = t; j++; } } } System.out.println(Arrays.toString(arr)); } } // [30, 43, 80]