Java map常用方法与使用

在Java的集合框架中,Map接口用于存储键值对,提供了一种基于键进行查找和操作的数据结构。Map接口的实现类提供了丰富的方法来操作键值对,例如添加、删除、更新和查找。
Map接口是一个键值对的集合,它继承自Collection接口中的size()和isEmpty()等方法,同时还提供了根据键查找值的方法,以及添加、删除和更新键值对的方法。在Java中,Map接口有几个常见的实现类,每个实现类都具有不同的性能和用途。
 
HashMap:基于哈希表实现,具有快速的查找和插入操作,适用于需要快速查找键值对的场景。
TreeMap:基于红黑树实现,可以对键进行排序,并提供了一系列与排序相关的方法,适用于需要对键进行排序的场景。
LinkedHashMap:基于哈希表和链表实现,保持键值对的插入顺序,适用于需要保持插入顺序的场景。

HashMap

HashMap是Map接口的一个常见实现类,它基于哈希表实现,可以提供快速的查找和插入操作。以下是一些常用的HashMap方法:
方法签名 描述
put(K key, V value) 将指定的键值对添加到HashMap中。
remove(Object key) 从HashMap中移除指定键的键值对。
get(Object key) 返回指定键对应的值。
containsKey(Object key) 检查HashMap中是否包含指定的键。
containsValue(Object value) 检查HashMap中是否包含指定的值。
size() 返回HashMap中键值对的数量。
getOrDefault(key, defaultValue) 获取key值,如果没有,设置默认值并返回
 

TreeMap

TreeMap是Map接口的另一个常见实现类,它基于红黑树实现,可以对键进行排序,并提供了一系列与排序相关的方法。以下是一些常用的TreeMap方法:
方法签名 描述
put(K key, V value) 将指定的键值对添加到TreeMap中。
remove(Object key) 从TreeMap中移除指定键的键值对。
get(Object key) 返回指定键对应的值。
containsKey(Object key) 检查TreeMap中是否包含指定的键。
size() 返回TreeMap中键值对的数量。
firstKey() 返回TreeMap中的第一个键(根据排序顺序)。
lastKey() 返回TreeMap中的最后一个键(根据排序顺序)。
 

LinkedHashMap

LinkedHashMap是Map接口的另一个实现类,它基于哈希表和链表实现,并保持键值对的插入顺序。以下是一些常用的LinkedHashMap方法:
方法签名 描述
put(K key, V value) 将指定的键值对添加到LinkedHashMap中。
remove(Object key) 从LinkedHashMap中移除指定键的键值对。
get(Object key) 返回指定键对应的值。
containsKey(Object key) 检查LinkedHashMap中是否包含指定的键。
size() 返回LinkedHashMap中键值对的数量。
 

定义以及遍历

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

public class MapExample {
    public static void main(String[] args) {
        // HashMap 定义和遍历
        Map<String, String> hashMap = new HashMap<>();
        // 向 HashMap 中添加数据
        hashMap.put("key1", "value1");
        hashMap.put("key2", "value2");
        hashMap.put("key3", "value3");
        // 遍历 HashMap
        System.out.println("HashMap:");
        for (Map.Entry<String, String> entry : hashMap.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }

        // TreeMap 定义和遍历
        Map<String, String> treeMap = new TreeMap<>();
        // 向 TreeMap 中添加数据
        treeMap.put("key3", "value3");
        treeMap.put("key1", "value1");
        treeMap.put("key2", "value2");
        // 遍历 TreeMap,键会被自动排序
        System.out.println("\nTreeMap:");
        for (Map.Entry<String, String> entry : treeMap.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }

        // LinkedHashMap 定义和遍历
        Map<String, String> linkedHashMap = new LinkedHashMap<>();
        // 向 LinkedHashMap 中添加数据
        linkedHashMap.put("key1", "value1");
        linkedHashMap.put("key3", "value3");
        linkedHashMap.put("key2", "value2");
        // 遍历 LinkedHashMap,保持插入顺序
        System.out.println("\nLinkedHashMap:");
        for (Map.Entry<String, String> entry : linkedHashMap.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
    }
}
每个Map实现都有其特定的特性:
  • HashMap不保证元素的顺序。
  • TreeMap根据键的自然顺序或者提供的Comparator来排序。
  • LinkedHashMap保持元素的插入顺序。
点赞

当前页面评论已关闭。

隐藏
变装