我现在需要取一个无序数组中按照降序排列的前n个值及其在原始数组中的下标位置。n是变量,可取下标范围内的任何数。希望能得到新颖的思路。
java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:
import java.util.ArrayList;运行结果如下:
java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public class ceshi {
public static void main(String[] args) {
int n = 5;
int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 };
HashMap map = new HashMap();
for (int i = 0; i < a.length; i++) {
map.put(a[i], i); // 将值和下标存入Map
}
// 排列
List list = new ArrayList();
Arrays.sort(a); // 升序排列
for (int i = 0; i < a.length; i++) {
list.add(a[i]);
}
for (Object object : list) {
System.out.print(object + ",");
}
System.out.println();
// 查找原始下标
for (int i = 0; i < n; i++) {
System.out.print(map.get(a[i]) + ",");
}
}
}
运行结果如下:
java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public class ceshi {
public static void main(String[] args) {
int n = 5;
int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 };
HashMap map = new HashMap();
for (int i = 0; i < a.length; i++) {
map.put(a[i], i); // 将值和下标存入Map
}
// 排列
List list = new ArrayList();
Arrays.sort(a); // 升序排列
for (int i = 0; i < a.length; i++) {
list.add(a[i]);
}
for (Object object : list) {
System.out.print(object + ",");
}
System.out.println();
// 查找原始下标
for (int i = 0; i < n; i++) {
System.out.print(map.get(a[i]) + ",");
}
}
}
运行结果如下:
java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public class ceshi {
public static void main(String[] args) {
int n = 5;
int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 };
HashMap map = new HashMap();
for (int i = 0; i < a.length; i++) {
map.put(a[i], i); // 将值和下标存入Map
}
// 排列
List list = new ArrayList();
Arrays.sort(a); // 升序排列
for (int i = 0; i < a.length; i++) {
list.add(a[i]);
}
for (Object object : list) {
System.out.print(object + ",");
}
System.out.println();
// 查找原始下标
for (int i = 0; i < n; i++) {
System.out.print(map.get(a[i]) + ",");
}
}
}
运行结果如下: