假设我有一个像这样的数组列表:
[24、15、55、101、555]
如何根据字符串中“5”的数量对数组进行排序?如果没有五,那么较小的数字先行。所以排序后的数组将是:
[24,101,15,5,555]
知道如何做到这一点吗?也许计算 5 次出现的次数并有一个 2d 数组,其中 1. 实际数字 2. 5 次出现的次数?然后根据二维数组的第二列对数组进行排序?我对 java 还很陌生,所以请耐心等待。
最佳答案
我将创建一个实现 Comparator<String>
interface 的类。在 compare
方法,检测5
的数量那里的人物。如果数量5
字符相等,则使用 Integer.parseInt
获取数字并进行比较。
如果第一个字符串应分别比较小于、等于或大于第二个字符串以满足compare
,请确保返回小于零、0或大于零的数字。的契约(Contract)。
int compare(T o1, T o2)
Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
然后调用Arrays.sort(yourArray, new YourStringComparator());
.
关于java - 根据字符出现的次数对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231727/