首页 新闻 会员 周边

集合问题取前三值

0
[待解决问题]

我有个list集合 ,我想取出前三个最大数据 ,如何取

OneMeterSunlight的主页 OneMeterSunlight | 菜鸟二级 | 园豆:225
提问于:2015-11-28 15:40
< >
分享
所有回答(2)
0

先排序, 升序取集合后3个数据, 降序取集合前3个数据

jio92 | 园豆:1064 (小虾三级) | 2015-11-28 16:36
0
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]
之奇一昂 | 园豆:1421 (小虾三级) | 2015-11-28 20:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册