public class Test {
public static void main(String[] args) {
HashMap<String, City> cities = new HashMap<>();
cities.put("Rome", new City("Rome", "Italy", 2869461));
cities.put("Berlin", new City("Berlin", "Germany", 3610156));
cities.put("Lisbon", new City("Lisbon", "Portugal", 545245));
Iterator<String> keySetIterator = cities.keySet().iterator();
System.out.println("HashMap has " + cities.size() + " elements");
System.out.print("Enter a city to search for ");
Scanner s = new Scanner(System.in);
String searchtext = s.nextLine();
System.out.println(searchtext);
System.out.println("Key result " + cities.containsKey(searchtext));
String key = keySetIterator.next();
System.out.println("key: " + key + " value: " + cities.get(key).getName());
if (cities.get(key).getName().contains(searchtext)) {
System.out.println("Value result found " + cities.get(key).getCountry() + " " + cities.get(key).getPopulation());
}
У меня есть этот код в основном, и у меня есть один класс (Город), который имеет только геттер, сеттеры и конструктор. Когда я запускаю код, он работает только тогда, когда полныйСравнение входной строки с несколькими ключами в Hashmap
SearchText = Рим
... Если я ставлю
Лиссабон
код Безразлично» t вставить в последнее «если», и я не знаю, почему. Любая помощь?
Вы только по сравнению с самой первой записи. – Marvin
'keySetIterator.next()' просто возвращает одну запись из итератора, и вы сравниваете ввод с ней, что вызывает проблему. Вместо этого вы можете просто искать входные данные против клавиш на карте. – Prathap