Считайте значения из csv-файла и определите уникальные имена

#java #arrays #csv #input #talend

Вопрос:

Я использую функцию и компонент talend для чтения и извлечения значений из csv-файла и поиска уникальных значений в определенном столбце A.

файл csv содержит: csv

В этом случае я хочу прочитать столбец ИМЯ ,который служит заголовком,и определить только уникальные имена(Том,Джейсон,Рой, Бьянка) из этой категории имен и сохранить их в массиве, и я могу использовать их, чтобы проверить, существует ли входящее имя из нового файла или совпадает с именем, извлеченным из файла csv выше.

Дизайн Работы:

  • список файлов->tjava

Тява:

 int n = 600;   int i=0;  String line="";  int linenumber=0;  int index=0;    try(BufferedReader br = new BufferedReader(new FileReader((String)globalMap.get("tFileList_1_CURRENT_FILEPATH"))))  {   while ((line = br.readLine()) != null amp;amp; linenumber< n )   {  String[] tokens = line.split(",");  System.out.println("Columns=>"   tokens[0]);  }  }  

context.name будет глобальной переменной, содержащей все уникальные имена Существует ли какой-либо другой более эффективный способ обработки csv-файла и извлечения только уникальных имен из столбца A и сохранения его в списке/массиве, где мы можем проверить его соответствие?

Ценю ваш вклад.Спасибо

Я думаю, что лучшим вариантом было бы использовать br.readLine() и сохранить значения с помощью функции разделения(«,») и сохранить их в хэш-наборе. Затем hashset.contains проверяет, соответствуют ли входящие имена в новом файле сохраненному значению hashset или нет, и соответственно определяет поток данных.

Мне только сейчас нужно найти УНИКАЛЬНЫЕ записи в столбце A, и я не хочу, чтобы заголовок отображался в моих выходных данных.

ВЫВОД: Столбцы ИМЯ Столбцов Столбцы Тома Столбцы Джейсона Столбцы Тома Столбцы Роя Столбцы Бьянки

Ответ №1:

Мой совет был бы:

  1. Создайте 2 набора хэшей, «уникальный» и «дубликат».
  2. для каждой строки разделите ее символом».», являющимся разделителем, и проиндексируйте первый элемент (имя в этой строке).
  3. если duplicate.contains(имя) == true, то перейдите к следующему имени
  4. если unique.содержит(имя) == true, то unique.удалить(имя), дублировать.добавить(имя), иначе unique.добавить(имя)
  5. в конце концов, набор хэшей unqiue содержит все уникальные имена.

Комментарии:

1. Set Коллекция, которая не содержит повторяющихся элементов.