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));