对String []数组的数组列表进行排序

纳斯皮兰:

我正在读取.csv类似Excel中电子表格文件。有一定数量的列,由文件确定,我使用该.split(",")方法将每一行读入字符串数组然后,我将其放入数组列表中,这样它就可以容纳所有字符串数组,而无需指定特定大小。但是,当我使用排序数组列表时Collections.sort(),程序中断了。可能是什么问题?这是我要排序的代码:

Collections.sort(stringList, new Comparator < String[] > () {
    public int compare(String[] strings, String[] otherStrings) {
        return -1 * (strings[sortNum].compareTo(otherStrings[sortNum]));
    }
});
乔恩·斯基特(Jon Skeet):

两点:

  • 不要compare-1 的结果相乘以反转比较。Integer.MIN_VALUE * -1还是Integer.MIN_VALUE相反,可以颠倒比较本身的顺序
  • 我的猜测是您实际上有一些行而没有足够的列。也许您应该把那些放在最后?

就像是:

Collections.sort(stringList, new Comparator < String[] > () {
    public int compare(String[] x1, String[] x2) {
        if (x1.length > sortNum && x2.length > sortNum) {
            return x2[sortNum].compareTo(x1[sortNum]); 
        }
        if (x1.length > sortNum) {
            return 1;
        }
        if (x2.length > sortNum) {
            return -1;
        }
        return x2.length - x1.length;
    }
});

或者,首先过滤列表以确保所有行都有足够的列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于 String 属性对对象的数组列表进行排序

使用linq对List <string>的数组进行排序

按特定的String值对String数组进行排序

JavaScript:我可以在数组中对String进行排序(可能无法正常使用排序)

对Map <String,String>的列表进行排序

对Map <String,String>的列表进行排序

从txt列表到String数组

根据字符串中存在的数字对String []数组进行排序

根据指定为String的数字键对对象数组进行排序

Java:对String数组进行排序,其字符串表示int

通过NSDate和String时间的混合对对象的Swift数组进行排序

如何在 Swift 中对 Int 类型的 String 格式数组进行排序

无法对String []数组中的文件夹中的文件进行排序

使用IComparable <string>按长度对字符串数组进行排序

在Swift 3.0中按字母顺序对数组[[String:Any]]进行排序

如何对list <string> /字符串版本号数组进行排序?

List <String>的列表以字符串排序的字符串数组

Python - 对单个数组/列表与多维数组/列表进行排序

对对象数组列表进行排序

如何对numpy数组列表进行排序?

如何对给定的数组列表进行排序?

对链接列表节点的数组进行排序

如何对对象的数组列表进行排序?

根据String属性排序对象数组

JAVA的String排序数组问题

我如何排序数组:string []?

对按保持排序的值排序的数组列表进行排序

基于索引对等长数组的数组列表进行排序

如何以与对“名称”数组列表进行排序相同的方式对“路径”数组列表进行排序?