84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
有个字符串数组,string[] str = {A,B,C,D,E,F,G,H};,数组分别对应一个整数数组,int[] a = {3,2,6,4,8,9,1,23};,类似于这样,对整数数组中的数从大到小排序,然后将整数数组对应的字符串数组按序输出,求解java代码的实现方式。
闭关修行中......
你定义一个 Holder 类,用来保存 字符-数字 这个映射,然后对所有的 Holder,按照 Holder 中的数字从大到小排序,最后按序输出每个 Holder 的字符。
import java.util.Arrays; public class Test { static class Holder implements Comparable<Holder> { public int num; public String str; public Holder(String str, int num) { this.str = str; this.num = num; } @Override public int compareTo(Holder that) { return that.num - this.num; // 逆序排序 } } public static void test(String[] strs, int[] nums) { if (strs.length != nums.length) { return; } Holder[] holders = new Holder[strs.length]; for (int i = 0; i < strs.length; i++) { holders[i] = new Holder(strs[i], nums[i]); } Arrays.sort(holders); for (Holder holder : holders) { System.out.print(holder.str + " "); } System.out.println(); } public static void main(String[] args) throws Exception { String[] strs = {"A", "B", "C", "D", "E", "F", "G", "H"}; int[] a = {3, 2, 6, 4, 8, 9, 1, 23}; test(strs, a); } }
运行结果:
你定义一个 Holder 类,用来保存 字符-数字 这个映射,然后对所有的 Holder,按照 Holder 中的数字从大到小排序,最后按序输出每个 Holder 的字符。
运行结果: