whatever_214 2016-12-13 08:42 采纳率: 42.9%
浏览 1873
已采纳

java如何不改变一维数组顺序,获得其中最大三个值的序号

有一个一位数组,序号代表用户id,我要取最大三个值的用户,也就是得到最大那三个值的序号,怎么做

  • 写回答

5条回答 默认 最新

  • HarleyZhuge 2016-12-13 09:40
    关注

    这有一个比较弱的办法,请参考:
    import java.lang.reflect.Array;
    import java.util.Arrays;
    import java.util.List;
    public class Test {
    public static void main (String[] args) {
    int arr [] = {3,56,768,13,354,13,5,12,3};
    // 数组复制,防止原来数组被破坏
    int arrCopy [] = Arrays.copyOf(arr, arr.length);
    // 数组排序
    Arrays.sort(arrCopy);
    // 与前三值比较,获取原数组前三的下标
    for (int j = arrCopy.length - 1; j >= arrCopy.length - 3; j--){
    for (int i = 0; i < arr.length; i++){
    if (arr[i] == arrCopy[j]) {
    System.out.println(i);
    }
    }
    }
    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 用三极管设计—个共射极放大电路
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示