我正在使用OpenCSV从CSV文件中读取数据并使用主页中的一些示例代码:
CSVReader reader = new CSVReader(new FileReader("stockInfo.csv"));
List myEntries = reader.readAll();
我现在正试图遍历此列表并打印出每个条目。但我似乎无法弄清楚执行此操作的代码。
有人可以向我解释我应该如何做这件事,因为我似乎无法解决这个问题。
答案 0 :(得分:7)
假设您想要将每行的每个条目输出到它自己的行:
List<String[]> myEntries = reader.readAll();
for (String[] lineTokens : myEntries) {
for (String token : lineTokens) {
System.out.println(token);
}
}
答案 1 :(得分:2)
for(int i = 0; i < myEntries.size(); i++){
myEntries.get(i); // do something else here
}
或
2)
for(String s: myEntries)
// Do work on s here
答案 2 :(得分:2)
您是否尝试过使用Iterator? 它应该是这样的:
Iterator it = myEntries.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
答案 3 :(得分:1)
如果可能,您应该使用CSVReader
的泛型。 readAll()
实际上会返回List<String[]>
而不是List<String>
。然后,你只需要:
for (String[] row : myEntries) {
System.out.println(Arrays.toString(row));
}
答案 4 :(得分:0)
你可以做一些这样的事情。我在迭代器上添加了同步。
List<String[]> myEntries = reader.readAll();
Iterator<String[]> iter = myEntries.iterator();
synchronized (iter) {
while (iter.hasNext()) {
String[] items = iter.next();
for (String item: items) { //foreach loop
//Work with `item`
}
}
}
答案 5 :(得分:0)
在Java 8及以上版本中,您也可以
List<String> s = new LinkedList<>();
s.stream().forEach(System.out::print);
或
List<String> s = new LinkedList<>();
s.stream().forEach(s ->
System.out.print(s)
);
可以使用paralleStream()代替或使用stream()来进行并行执行。互联网上有很多文章会更快地执行,答案是:&#34;它取决于&#34; (主要是根据列表中的项目数量)