删除二维数组并复制字符串

时间:2018-02-05 13:40:51

标签: java arrays future

我编写的代码使用文件中的数据填充二维数组。

 public static Collection getBrowser() {   
        return Arrays.asList(readFromFile("arr.txt"));
    }
    private static Object[][] readFromFile(String filePath) {
        try {
            InputStream inputStream = new FileInputStream(filePath);
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            StringBuilder string = new StringBuilder();
            while (reader.ready()) {
                string.append(reader.readLine());
                string.append(System.getProperty("line.separator"));
            }
            reader.close();
            String[] lineSplit = string.toString().split(System.getProperty("line.separator"));
            Object[][] result = new Object[lineSplit.length][];
            for (int i = 0; i < lineSplit.length; i++) {
                String line = lineSplit[i];
                String[] itemSplit = line.split(",");
                result[i] = new Object[itemSplit.length];
                for (int j = 0; j < itemSplit.length; j++) {
                    if (j == 0) {
                        result[i][j] = Integer.valueOf(itemSplit[j]);
                    } else {
                        result[i][j] = itemSplit[j];
                    }
                  System.out.print(result[i][j]+" ");
                }
            //System.out.println();
            }
            return result;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

示例文件

 1000, a, a, x
    1000, x, x, y
    1200, c, c, y

请告诉我,如何通过将每行扫描到一个单独的数组中,按最后一个值对此数组进行排序

Arr1
1000, a, a, x
Arr2
1000, x, x, y
1200, c, c, y

1 个答案:

答案 0 :(得分:1)

到目前为止,您的方向很好,所以您可以阅读文件......您接下来要做什么?

对我而言,它看起来并不像2D数组,但更像是对象数组。定义对象以包装数据和使用Comparator

一旦您实施了比较器,您就可以致电Arrays.sort(array, comparator)

请在此处查看一些帮助:How to use Comparator in Java to sort

你不需要分成两个数组并单独排序,一旦你更熟悉比较器,你可以一次性完成...