Java 创建可以对字符串/整数数组排序的算法
我试图弄清楚如何制作一个排序函数,它将按降序对数组进行排序Java 创建可以对字符串/整数数组排序的算法,java,sorting,Java,Sorting,我试图弄清楚如何制作一个排序函数,它将按降序对数组进行排序 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.equalsIgnor
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));
}
}
public void dsort(字符串字段)引发DataSetException{
int-front=0;
int findex=-1;
字符串[]tosort=新字符串[50];
对于(int i=0;i
它的作用是通过从数组数组中获取元素来创建一个新数组,这就是我想要它做的。
但是,我的排序输出是32、3、25、20、2、1000、1等。。
这些“整数”被认为是字符串,这个排序函数也应该能够将单词排序为字符串。我想我应该尝试使用comparable,但我不确定在这种情况下如何实现它。如果所有东西都是一个数字,那么您不希望将它们存储为字符串,存储为数字,然后使用数字排序 另一方面,如果你有一个字符串的组合,其中一些是数字的,一些是字母的,我建议你使用类似字母计算器的东西 使用:
List sortedList=Ordering.natural().reverse().onResultOf(新函数(){
@覆盖公共整数应用(字符串输入){
返回整数。valueOf(input);//假定输入始终有效
}
}).immutableSortedCopy(Iterables.concat(列表));
或者类似的。
Iterables.concat
将获取Iterables的一个iterable并将其转换为一个iterable。您可能需要将数组数组转换为列表。哪部分?以数字形式存储数据,在数据以数字形式存储后对其进行排序,或者实现AlphanumComparator?
List<String> sortedList = Ordering.natural().reverse().onResultOf(new Function<String, Integer>() {
@Override public Integer apply(String input) {
return Integer.valueOf(input); // assumes input is always valid
}
}).immutableSortedCopy(Iterables.concat(listOfLists));