java - 如何在java中对这个数组列表进行排序

标签 java opencsv

我正在使用 OpenCsv 访问一个文件,我希望对其进行排序,然后写回另一个文件名。对列表进行排序时遇到问题。谢谢。

我正在尝试按第一列和第二列对 csv 文件进行排序。

 CSVReader reader = new CSVReader(new FileReader("d:\\temp\\data1.csv"), ',', '"', 1);

 //Read all rows at once
 List<String[]> allRows = reader.readAll();

 //Read CSV line by line and use the string array as you want
 for(String[] row : allRows){
    System.out.println(Arrays.toString(row));
 }

 *Arrays.sort(allRows.toArray());*

 CSVWriter writer = new CSVWriter(new FileWriter("d:\\temp\\data1sorted.csv"));
 writer.writeAll(allRows);

 //close the writer
 writer.close();

运行此代码时出现以下错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.Comparable
    at java.util.ComparableTimSort.countRunAndMakeAscending(Unknown Source)
    at java.util.ComparableTimSort.sort(Unknown Source)
    at java.util.ComparableTimSort.sort(Unknown Source)
    at java.util.Arrays.sort(Unknown Source)
    at CompareCsv.main(CompareCsv.java:31)

最佳答案

这对你有帮助吗?

public static void main(String args[]) {
            ArrayList<String> animalList = new ArrayList<String>();

        animalList.add("Dog");
        animalList.add("Cat");
        animalList.add("Snake");
        animalList.add("Bison");

        System.out.println("Before Sorting:");
        for (String tmpStr : animalList) {
            System.out.println(tmpStr);
        }

        // sorting
        Collections.sort(animalList);

        System.out.println("After Sorting:");
        for (String tmpStr : animalList) {
            System.out.println(tmpStr);
        }
    }

关于java - 如何在java中对这个数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27179037/

相关文章:

java - 需要删除csv中的空列

mysql - 这个数据库转储设计好吗?

java - 如何用char类型的单个字符替换字符串中的某些字符?

java - 什么是适合 Java EE 应用程序的二级缓存?

java - Jayway jsonpath 在正则表达式中以 "/"开头

java - 使用打包的.jar作为插件时Py4J回调接口(interface)抛出 "Invalid interface name"

java - 我可以在另一个网络元素中获取一个网络元素吗?

java - 如何使用 CsvReader 中的 getHeaders() 方法读取 csv 文件的 header 值

java - 使用 opencsv 将 CSV 写入字符串而不创建实际文件或临时文件

java - 使用opencsv库导出数据时如何保留零开始字符串