#java #arrays #csv #input #talend
Вопрос:
Я использую функцию и компонент talend для чтения и извлечения значений из csv-файла и поиска уникальных значений в определенном столбце A.
В этом случае я хочу прочитать столбец ИМЯ ,который служит заголовком,и определить только уникальные имена(Том,Джейсон,Рой, Бьянка) из этой категории имен и сохранить их в массиве, и я могу использовать их, чтобы проверить, существует ли входящее имя из нового файла или совпадает с именем, извлеченным из файла 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:
Мой совет был бы:
- Создайте 2 набора хэшей, «уникальный» и «дубликат».
- для каждой строки разделите ее символом».», являющимся разделителем, и проиндексируйте первый элемент (имя в этой строке).
- если duplicate.contains(имя) == true, то перейдите к следующему имени
- если unique.содержит(имя) == true, то unique.удалить(имя), дублировать.добавить(имя), иначе unique.добавить(имя)
- в конце концов, набор хэшей unqiue содержит все уникальные имена.
Комментарии:
1.
Set
— Коллекция, которая не содержит повторяющихся элементов.