Две Java строки с одинаковыми значениями разные идентификаторы Eclipse не подходят для HashMap - PullRequest
1 голос
/ 19 марта 2020

Вот код (имена классов из Knime):

    HashMap<String,DataColumnSpec> rcols = new HashMap<String, DataColumnSpec>();
    rightSpec.forEach(rs -> { rcols.put(rs.getName(), rs); });
    DataColumnSpec[] jcols = leftSpec.stream()
        .filter(s -> rcols.containsKey(s.getName()))
        .toArray(DataColumnSpec[]::new);

Результат пуст, но не должен быть! Действительно, есть один соответствующий столбец!

Вот снимок экрана отладчика:

enter image description here

Примечание P # в первом случае с id = 14978 и второй id = 666.

Что здесь происходит? Что мне сделать, чтобы это исправить?

1 Ответ

3 голосов
/ 20 марта 2020

К сожалению, ответ был непечатным символом в одной из строк. Источником данных является узел FileReader в Knime, в котором есть ошибка при обработке файлов данных UTF-8-BOM. Он вставляет NUL-символ в первую читаемую строку, которая невидима в отладчике, но отбрасывает все сравнения.

Полный кредит @Ole VV Мне просто не пришло в голову. Урок усвоен!

...