class Info {
String name;
int height;
Info(String name, int height) {
this.name = name;
this.height = height;
}
}
public String[] sortPeople(String[] names, int[] heights) {
int n = names.length;
List<Info> list = new ArrayList<>(n);
for (int i = 0; i < n; i++) {
list.add(new Info(names[i], heights[i]));
}
list.sort((a, b) -> b.height - a.height);
String[] ans = new String[n];
for (int i = 0; i < n; i++) {
ans[i] = list.get(i).name;
}
return ans;
}
解二:
public String[] sortPeople(String[] names, int[] heights) {
int n = names.length;
String[] ans = new String[n];
List<String> nameList = new ArrayList<String>();
for (int i = 0; i < n; i++) {
nameList.add(names[i] + "--" + heights[i]);
}
Collections.sort(nameList, (a, b) -> {
return Integer.parseInt(b.split("--")[1]) - Integer.parseInt(a.split("--")[1]);
});
for (int i = 0; i < n; i++) {
ans[i] = nameList.get(i).split("--")[0];
}
return ans;
}