Java HashMap
Java HashMap
В этой ArrayList
главе вы узнали, что массивы хранят элементы в виде упорядоченной коллекции, и вы должны обращаться к ним с помощью порядкового номера ( int
типа). Однако HashMap
, храните элементы в парах " ключ / значение ", и вы можете получить к ним доступ по индексу другого типа (например, a String
).
Один объект используется как ключ (индекс) для другого объекта (значения). Он может хранить разные типы: String
ключи и Integer
значения или одного и того же типа, например: String
ключи и String
значения:
Пример
Создайте HashMap
объект с именем capitalCities , в котором будут храниться String
ключи и String
значения :
import java.util.HashMap; // import the HashMap class
HashMap<String, String> capitalCities = new HashMap<String, String>();
Добавить элементы
Класс HashMap
имеет много полезных методов. Например, чтобы добавить в него элементы, используйте put()
метод:
Пример
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called capitalCities
HashMap<String, String> capitalCities = new HashMap<String, String>();
// Add keys and values (Country, City)
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Доступ к элементу
Чтобы получить доступ к значению в HashMap
, используйте get()
метод и обратитесь к его ключу:
Пример
capitalCities.get("England");
Удалить элемент
Чтобы удалить элемент, используйте remove()
метод и обратитесь к ключу:
Пример
capitalCities.remove("England");
Чтобы удалить все элементы, используйте clear()
метод:
Пример
capitalCities.clear();
Размер хеш-карты
Чтобы узнать, сколько элементов, используйте size()
метод:
Пример
capitalCities.size();
Цикл через HashMap
Перебрать элементы a HashMap
с помощью цикла for-each .
Примечание. Используйте keySet()
метод, если вам нужны только ключи, и используйте values()
метод, если вам нужны только значения:
Пример
// Print keys
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
Пример
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
Пример
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
Другие типы
Ключи и значения в HashMap на самом деле являются объектами. В приведенных выше примерах мы использовали объекты типа «String». Помните, что String в Java — это объект (а не примитивный тип). Чтобы использовать другие типы, такие как int, необходимо указать эквивалентный класс-оболочку : Integer
. Для других примитивных типов используйте: Boolean
for boolean, Character
for char, Double
for double и т. д.:
Пример
Создайте HashMap
объект с именем
people , который будет хранить String
ключи и
Integer
значения :
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called people
HashMap<String, Integer> people = new HashMap<String, Integer>();
// Add keys and values (Name, Age)
people.put("John", 32);
people.put("Steve", 30);
people.put("Angie", 33);
for (String i : people.keySet()) {
System.out.println("key: " + i + " value: " + people.get(i));
}
}
}