Как преобразовать CSVRecord в список? - PullRequest
0 голосов
/ 30 октября 2019

Мне нужно преобразовать CSVRecord в List, чтобы получить позицию элемента.

Итак, я использовал это:

List<CSVRecord> records = csvParser.getRecords();
int i = records.get(0).indexOf(element);

Однако, records.get(0) возвращаетList<CSVRecord>, а не List<String> ...

Более того, я не могу использовать csvParser.getHeaderNames();, потому что после этого мне нужно скопировать файл с заголовком.

1 Ответ

0 голосов
/ 30 октября 2019

Учитывая приведенную ниже функцию, которую я нашел на geeksforgeeks.com

public static <T> List<T> getListFromIterator(Iterator<T> iterator) { 
    Iterable<T> iterable = () -> iterator; 

    return StreamSupport 
              .stream(iterable.spliterator(), false) 
              .collect(Collectors.toList()); 
} 

и тот факт, что вы можете получить итератор от CVSRecords, вы можете сделать

List<String> list = getListFromIterator(records.get(0).iterator());
...