java创建一个可以对字符串/整数数组排序的算法
我试图弄清楚如何制作一个排序函数,它将按降序对数组进行排序
public void dsort(String field) throws DataSetException {
int front = 0;
int findex = -1;
String[] tosort = new String[50];
for (int i = 0; i < filedata[0].length; i++) {
if (field.equalsIgnoreCase(filedata[0][i])) {
findex = i;
}
}
if (findex == -1) {
throw new DataSetException();
} else {
for (int k = 0; k < getNumRecords(); k++) {
if (filedata[k][findex] != null) {
tosort[front] = filedata[k][findex];
front++;
}
}
Comparator comparator = Collections.reverseOrder();
Arrays.sort(tosort, comparator);
System.out.println(Arrays.asList(tosort));
}
}
它的作用是通过从数组数组中获取元素来创建一个新数组,这就是我想要它做的。 但是,我的排序输出是32、3、25、20、2、1000、1等。。 这些“整数”被认为是字符串,这个排序函数也应该能够将单词排序为字符串。我认为我应该尝试使用comparable,但我不确定在这种情况下如何实现它
# 1 楼答案
如果所有的东西都是一个数字,那么你不想把它们存储为字符串,存储为数字,然后使用数字排序
另一方面,如果你有一个字符串的组合,其中一些是数字的,一些是字母的,我建议你使用一些类似字母计算器的东西 here
# 2 楼答案
使用Google Guava:
或者类似的。
Iterables.concat
将把一个iterable的iterable转换成一个iterable。您可能需要将数组数组转换为列表列表