На самом деле это не ответ, но слишком длинный для комментария ...
Прежде всего, Set
- это структура уникальных (в отношении equals()
) значений.
Таким образом, ваш код на самом деле использует правильную структуру Map
, в которой вы отображаете String
на число (Integer
).
Вопрос 1
Требуется ли число? в файле? Вы можете вычислить это из ввода
Adam
Mary
Michael
мы знаем, что Адам находится в первой строке ...
edit 1: Вы можете использовать счетчик, который вы будете увеличивать каждый раз, когда вы вводите l oop. В Java API нет ничего, что могло бы сделать это для вас ...
Вопрос 2
В вашем вопросе мне не хватает информации о том, что не работает ... Каково ваше ожидание, которое не соответствует действительности?
Вопрос 3
Что в случае дубликатов?
Alfa
Bravo
Alfa
Это нормально, что на 3-я строка, которую вы переназначаете Alfa на 3?
Вопрос 4
Какова ваша мотивация использовать Set
?
Как я писал в Set
, содержит «одиночные» предметы. Если ваш предмет содержит несколько полей, вы можете заключить в Object
, но я не вижу преимущества ...
Что-то вроде
class Item {
String line;
int lineNumber;
// TODO: 1 add constructors
// TODO: 2 add getter & setters
// TODO: 3 implement equals() and hashCode()
}
и добавить его к Set
вот так:
Set mySet = ...
mySet.add(new Item(line, counter)); // you need to add such constructor