java中map集合常用操作方法

10 篇文章 0 订阅
1.map集合常用方法
package Map;

import java.util.*;
import java.util.stream.Collectors;

public class MapDemo {
    /*
     * Map集合存储的是一个个的 键值对 数据
     * Map的键(key)不能重复
     *
     * HashSet、TreeSet、LinkedHashSet这三个set集合的内部都使用了Map集合,set集合使用Map集合的键来实现自己
     *  内容的不可重复
     */
    public static void main(String[] args) {
        // 三者操作方法相同
        HashMap<Integer, String> hashMap = new HashMap<>();
        TreeMap<Integer, String> treeMap = new TreeMap<>();
        LinkedHashMap<Integer,String> linkedHashMap = new LinkedHashMap<>();
        // 9 V put(K key,V value) 向集合中增加内容,如果键已经存在,那么就会用新值替换旧值,并将旧值返回回来,
        //  如果没有产生替换,返回null
        System.out.println(hashMap.put(0,"零"));
        System.out.println(hashMap.put(0,"零"));
        System.out.println(hashMap.put(1,"一"));
        System.out.println(hashMap.put(2,"二"));
        System.out.println(hashMap.put(3,"三"));
        // 10 void putAll(Map<? extends K,? extends V> m) 增加一组集合
        treeMap.put(1,"一");
        treeMap.put(2,"二");
        treeMap.put(3,"三");
        hashMap.putAll(treeMap);
        // 2.boolean containsKey(Object key) 判断集合中是否存在指定的key
        System.out.println(hashMap.containsKey(1));
        // 3.boolean containsValue(Object value) 判断集合中是否存在指定的value
        System.out.println(hashMap.containsValue("二"));
        // 4.Set<Map.Entry<K,V>> entrySet() 将Map接口变为Set集合
		// 对Entry下面有讲
        Set<Map.Entry<Integer, String>> set = hashMap.entrySet();
        for(Map.Entry<Integer, String> i : set){
            System.out.print(i.getKey()+","+i.getValue());
        }
        System.out.println();
        // 5.V get(Object key) 根据key找到其对应的value
        System.out.println(hashMap.get(3));
        // 6.boolean isEmpty() 判断是否为空
        System.out.println(hashMap.isEmpty());
        // 7 Set<K> keySet() 将全部的key变为Set集合
        System.out.println("-------------------------");
        Set<Integer> set1 = hashMap.keySet();
        for(Integer i : set1){
            System.out.print(i+"-"+hashMap.get(i));
        }
        // 8 Collection<V> values() 将全部的 value 变为 Collection 集合,如果只想遍历值,可以使用此方法,
        //  转换为collection集合之后在进行遍历输出,但是很少用
        Collection<String> collection = hashMap.values();
        for(String s : collection){
            System.out.print(s);
        }
        System.out.println();
        // 11 V remove(Object key) 根据key删除内容,也可以根据键和值删除,default boolean remove(Object key, Object value)
        //  注意,根据键删除元素,如果删除成功返回被删除元素,否则返回null
        hashMap.remove(3);
        System.out.println("根据键和值删除元素,如果不对返回false:"+hashMap.remove(2,"er"));
        System.out.println(hashMap.remove(2,"二"));
        // 12.V replace(K key, V value) 根据键,替换值,并将被替换的旧值返回
        System.out.println(hashMap.replace(1,"yi"));
        for(Map.Entry<Integer, String> i : set){
            System.out.println(i.getKey()+","+i.getValue());
        }
        // 13.boolean replace(K key, V oldValue, V newValue) 仅当前映射到指定值时,才替换指定键的条目。
        System.out.println(hashMap.replace(1,"一"));
        // 15.int size() 返回集合中键值对的数量。
        System.out.println(hashMap.size());
        for(Map.Entry<Integer, String> i : set){
            System.out.println(i.getKey()+","+i.getValue());
        }
        // 1.void clear() 清空Map集合中的内容
        hashMap.clear();
        for(Map.Entry<Integer, String> i : set){
            System.out.println(i.getKey()+","+i.getValue());
        }
    }
}
2.关于Map集合的输出

https://blog.csdn.net/qq_38679239/article/details/112357371

3.HashMap 与 Hashtable 的区别

Hashtable 是一个最早的 key-value 的操作类,本身是在 JDK 1.0 的时候推出的。其基本操作与 HashMap 是类似的,本身都是以 Map 为操作标准的,所以操作的结果形式都一样。
但是 Hashtable 中是不能向集合中插入 null 值的。
HashMap 本身是属于无序存放的。
HashMap(线程不安全,效率高)/Hashtable(线程安全,效率低)/ConcurrentHashMap(采用分段锁机制,保证线程安全,效率又比较高)
在这里插入图片描述

4.TreeMap

TreeMap 子类是允许 key 进行排序的操作子类,其本身在操作的时候将按照 key 进行排序,另外,key 中的内容可以 为任意的对象,但是要求对象所在的类必须实现 Comparable 接口。

从一般的开发角度来看,在使用 Map 接口的时候并不关心其是否排序,所以此类只需要知道其特点即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值