将行数组放入数组中

时间:2016-06-06 21:51:54

标签: java arrays list csv

我有以下代码:

 try {
     CsvParserSettings parserSettings = new CsvParserSettings();
     parserSettings.setLineSeparatorDetectionEnabled(true);
     RowListProcessor rowProcessor = new RowListProcessor();
     parserSettings.setRowProcessor(rowProcessor);
     parserSettings.setHeaderExtractionEnabled(true);
     CsvParser parser = new CsvParser(parserSettings);

     parser.parse(new FileReader("C:\\Users\\Desktop\\GeoIPCountryWhois.csv"));

  String[] headers = rowProcessor.getHeaders();
List<String[]> rows = rowProcessor.getRows();
for (int index = 0;index< rows.size();index++){
System.out.println(Arrays.toString(rows.get(index)));
}

 } catch (FileNotFoundException ex) {
     Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
 }

每次都会创建一行数组 如下所示

[1.0.1.0, 1.0.3.255, 16777472, 16778239, CN, China]
[1.0.4.0, 1.0.7.255, 16778240, 16779263, AU, Australia]
[1.0.8.0, 1.0.15.255, 16779264, 16781311, CN, China]

但是我想把我的数据放到一个单独的数组中,我该怎么做?

2 个答案:

答案 0 :(得分:1)

也许你想要这样的东西..

List<String[]> rows = rowProcessor.getRows();

List<String> oneList = rows.stream().flatMap(Arrays::stream).collect(Collectors.toList());
String[] oneArray = oneList.toArray(new String[0]);

答案 1 :(得分:1)

你的意思是数组数组吗?

List<String[]> rows = rowProcessor.getRows();
String[][] rowsArray = rows.toArray(new String[rows.size()][]); //this contains an array of all your rows

验证:

for (int i = 0; i < rowsArray.length; i++) {
   System.out.println(Arrays.toString(rowsArray[i]));
}

这将提供与您相同的输出。