复制数组';s索引为新数组的值,按最高值排序。JAVA

复制数组';s索引为新数组的值,按最高值排序。JAVA,java,arrays,Java,Arrays,我得到了一个int数组[8],其中包含0到9之间的随机非重复值。没有分类。 我想将数组的索引存储在另一个数组中,从最高值开始 e、 g输入数组-{9,8,7,3,6,5,2,4} 输出数组-{0,1,2,4,5,7,3,6} 新数组的0索引以值开始,该值等于第一个数组中值最高的索引(降序) 我是新来的,这是我的第一篇文章,我还在学习,所以请原谅 我不想对第一个数组进行排序。(不要问我为什么:O) 谢谢信息和,另请参见 //树映射按键排序。补充,你可以用你自己的 //自定义订单的比较器 树映射值索

我得到了一个
int数组[8]
,其中包含0到9之间的随机非重复值。没有分类。 我想将数组的索引存储在另一个数组中,从最高值开始

e、 g输入数组-
{9,8,7,3,6,5,2,4}

输出数组-
{0,1,2,4,5,7,3,6}

新数组的0索引以值开始,该值等于第一个数组中值最高的索引(降序)

我是新来的,这是我的第一篇文章,我还在学习,所以请原谅

我不想对第一个数组进行排序。(不要问我为什么:O)

谢谢

信息和,另请参见

//树映射按键排序。补充,你可以用你自己的
//自定义订单的比较器
树映射值索引=
新树映射(新比较器(){
公共整数比较(整数a、整数b){
返回b-a;//按相反顺序
}
})
;
对于(int i=0;iInfo和,另请参见

//树映射按键排序。补充,您可以使用自己的
//自定义订单的比较器
树映射值索引=
新树映射(新比较器(){
公共整数比较(整数a、整数b){
返回b-a;//按相反顺序
}
})
;
对于(int i=0;i
//输入数组
整数数组[]={9,8,7,4,5,6,1,2};
//原序
List originalOrder=newarraylist(Arrays.asList(array));
//要排序的数组
List arrayAsList=Arrays.asList(array);
Collections.sort(arrayAsList,newcomparator(){
@凌驾
公共整数比较(整数t,整数t1){
返回t1.compareTo(t);
}
});
整数输出数组[]=新整数[array.length];
对于(int i=0;i
//输入数组
整数数组[]={9,8,7,4,5,6,1,2};
//原序
List originalOrder=newarraylist(Arrays.asList(array));
//要排序的数组
List arrayAsList=Arrays.asList(array);
Collections.sort(arrayAsList,newcomparator(){
@凌驾
公共整数比较(整数t,整数t1){
返回t1.compareTo(t);
}
});
整数输出数组[]=新整数[array.length];
对于(int i=0;i
您尝试过什么吗?现在的问题相当广泛(因为这可以通过不同的方式实现),您可能已经结束了您的问题。如果您与他人分享您解决此问题的尝试,并说明您到底遇到了什么问题,那就更好了。向我们展示一些代码!向他展示文档,他已经丢失了。您尝试过什么吗?现在的问题相当广泛(因为这可以通过不同的方式实现),您的问题可能已经解决。如果您与他人分享您解决此问题的尝试,并说明您遇到的具体问题,会更好。给我们看一些代码!给他看文档,他迷路了。
// treemap is sorted by the keys. Supplementary, you can use your own
// comparator for a custom order
TreeMap<Integer, Integer> valuesToIndexes=
   new TreeMap<>(new Comparator<Integer>() {
     public int compare(Integer a, Integer b) {
       return b-a; // in the inverse order
     }
   })
;
for(int i=0; i<arr.length; i++) {
  valuesToIndexes.put(arr[i], i);
}
// iterating the values of a map will be done in the order of the map's keys
// Since the key is the array value in reverse (and the value is the index)
// we'll be outputting the array indexes in the decreasing order of its values
for(Integer v : valuesToIndexes.values()) {
  System.out.println(v);
}
    //input array
    Integer array[] = {9, 8, 7, 4, 5, 6, 1, 2};
    // originalOrder
    List<Integer> originalOrder = new ArrayList<>(Arrays.asList(array));
    //array to sort
    List<Integer> arrayAsList = Arrays.asList(array);

    Collections.sort(arrayAsList, new Comparator<Integer>() {
        @Override
        public int compare(Integer t, Integer t1) {
            return t1.compareTo(t);
        }
    });

    Integer outputArray[] = new Integer[array.length];

    for (int i = 0; i < arrayAsList.size(); i++) {
        Integer integer = arrayAsList.get(i);
        int index = originalOrder.indexOf(integer);
        outputArray[i] = index;

    }

    // test
    for (Integer integer : outputArray) {
        System.out.println(integer);
    }