Предположим, у меня есть строка / объект, имеющий некоторые данные в формате с разделением по конвейеру, как показано ниже
***Input:***
TIMESTAMP|COUNTRYCODE|RESPONSETIME|FLAG
1544190995|US|500|Y
1723922044|GB|370|N
1711557214|US|750|Y
Я хочу прочитать эту строку / объект и отфильтровать данные на основе имен определенных столбцов (например, TIMESTAMP). и ФЛАГ). И вернуть / отобразить вывод, как показано ниже -
***Output:***
TIMESTAMP|FLAG
1544190995|Y
1723922044|N
1711557214|Y
Я попытался использовать следующий код:
Сначала мне потребовались имена заголовков, которые сохранили массив:
headerArray[] = {TIMESTAMP, FLAG}
Сравнивая headerArray[]
с первой строкой ввода, я получил индекс указанного заголовка столбца на входе:
headerIndex[] = {0, 3}
Тогдапопытался использовать приведенный ниже код для фильтрации и получения указанных столбцов и значений:
return br.lines()
.skip(1) // skip headers
.map(s -> s.split("|"))
.filter(a -> a[0] && a[3])
.collect(Collectors.toList());
Примечание. У меня более миллиона строк значений, разделенных конвейерами. И я хочу вернуть все отфильтрованные значения столбца в одном объекте. Я полагаю, что это невозможно, возвращая значение в виде списка.