📜  Java Map接口

📅  最后修改于: 2020-09-26 15:04:49             🧑  作者: Mango

在本教程中,我们将学习Java Map接口及其方法。

Java集合框架的Map接口提供了map数据结构的功能。

它实现了Collection接口。


地图的工作

在Java中, Map元素存储在键/值对中。 是所有单独的相关的独特价值。

映射不能包含重复的键。并且,每个键都与一个值相关联。

Java中的地图界面的工作

我们可以使用与它们关联的键来访问和修改值。

在上图中,我们具有以下值: 美国巴西西班牙 。并且我们有相应的键: usbres

现在,我们可以使用它们的对应键访问这些值。

注意: Map界面维护3个不同的集合:

  • 密钥集
  • 一组值
  • 键/值关联(映射)的集合。

因此,我们可以分别访问键,值和关联。


实现Map的类

由于Map是界面,因此我们无法从中创建对象。

为了使用Map接口的功能,我们可以使用以下类:

  • 哈希图
  • 枚举地图
  • LinkedHashMap
  • WeakHashMap
  • 树状图

这些类在集合框架中定义并实现Map接口。

HashMap,TreeMap,EnumMap,LinkedHashMap和WeakHashMap类实现Java Map接口。


扩展Map的接口

这些子接口还扩展了Map接口:

  • SortedMap
  • 导航地图
  • 并发图

SortedMap,NavigableMap和ConcurrentMap扩展了Java Map接口。


如何使用地图?

在Java中,我们必须导入java.util.Map包才能使用Map 。导入包后,将按照以下方法创建地图。

// Map implementation using HashMap
Map numbers = new HashMap<>();

在上面的代码中,我们创建了一个名为NumbersMap 。我们已经使用HashMap类来实现Map接口。

这里,

  • -用于关联地图中每个元素(值)的唯一标识符
  • -地图中与按键相关联的元素

地图方法

Map接口包含Collection接口的所有方法。这是因为CollectionMap的超级接口。

除了Collection界面中可用的方法外, Map界面还包括以下方法:

  • put(K,V) -将键K和值V的关联插入到映射中。如果键已经存在,则新值将替换旧值。
  • putAll() -将指定映射中的所有条目插入此映射。
  • putIfAbsent(K,V) -如果键K尚未与值V关联,则插入关联。
  • get(K) -返回与指定键K关联的值。如果找不到该键,则返回null
  • getOrDefault(K,defaultValue) -返回与指定键K关联的值。如果找不到该键,则返回defaultValue
  • containsKey(K) -检查地图中是否存在指定的键K。
  • containsValue(V) -检查指定值V是否存在于映射中。
  • replace(K,V) -用新的指定值V替换键K的值。
  • 更换(K,属性oldValue,NEWVALUE) -替换为新的价值NEWVALUE只有当密钥K与值的属性oldValue相关联的密钥K的值。
  • remove(K) -从键K表示的映射中删除条目。
  • remove(K,V) -从映射中删除具有键K与值V关联的条目。
  • keySet() -返回映射中存在的所有键的集合。
  • values() -返回映射中存在的所有值的集合。
  • entrySet() -返回映射中存在的所有键/值映射的集合。

地图界面的实现

1.实现HashMap类

import java.util.Map;
import java.util.HashMap;

class Main {

    public static void main(String[] args) {
        // Creating a map using the HashMap
        Map numbers = new HashMap<>();

        // Insert elements to the map
        numbers.put("One", 1);
        numbers.put("Two", 2);
        System.out.println("Map: " + numbers);

        // Access keys of the map
        System.out.println("Keys: " + numbers.keySet());

        // Access values of the map
        System.out.println("Values: " + numbers.values());

        // Access entries of the map
        System.out.println("Entries: " + numbers.entrySet());

        // Remove Elements from the map
        int value = numbers.remove("Two");
        System.out.println("Removed Value: " + value);
    }
}

输出

Map: {One=1, Two=2}
Keys: [One, Two]
Values: [1, 2]
Entries: [One=1, Two=2]
Removed Value: 2

要了解有关HashMap更多信息,请访问Java HashMap。


2.实现TreeMap类

import java.util.Map;
import java.util.TreeMap;

class Main {

    public static void main(String[] args) {
        // Creating Map using TreeMap
        Map values = new TreeMap<>();

        // Insert elements to map
        values.put("Second", 2);
        values.put("First", 1);
        System.out.println("Map using TreeMap: " + values);

        // Replacing the values
        values.replace("First", 11);
        values.replace("Second", 22);
        System.out.println("New Map: " + values);

        // Remove elements from the map
        int removedValue = values.remove("First");
        System.out.println("Removed Value: " + removedValue);
    }
}

输出

Map using TreeMap: {First=1, Second=2}
New Map: {First=11, Second=22}
Removed Value: 11

要了解有关TreeMap更多信息,请访问Java TreeMap。