Map接口以及HashMap、LinkedHashMap实现类

Map接口,底层哈希表实现,无序,保证键的唯一性需要重写hashCode()和equals()方法

方法

添加,修改

V put(K key, V value)   // 添加成功返回空,键重复时,修改值,返回修改之前的值

V replace(K key, V value)   // 有此键时,修改值,返回之前的值;无此键返回null

void putAll(Map<? extends K, ? extends V> m)  // 对每一个m中的元素进行put操作

获取

V get(K key)  // 通过键得到值,若无此键,返回null

Collection<V>  values()    // 返回所有的值

删除

v remove(K key)   // 返回删除之前的值,若无此键,返回null

boolean remove(K key, V value)  // 删除对应的键值对,必须完全相同,返回true 

遍历

Set keySet()   // 把key装进Set集合,然后进行遍历,Map不能直接遍历

                Map<Integer, String> m = new HashMap<>();
        
        m.put(1, "qian");
        m.put(2, "sun");
        m.put(3, "li");
        m.put(4, "zhou");
    
        Set<Integer> keySet = m.keySet();
        for(Integer i: keySet)
        {
            String s = m.get(i);
            System.out.println(s);
        }
        System.out.println("######################");
        
        Iterator<Integer> it  = keySet.iterator();
        while(it.hasNext())
        {
            String s = m.get(it.next());
            System.out.println(s);
        }
        
        System.out.println("######################");
        keySet.forEach(e->{
            System.out.println(m.get(e));
        });
        System.out.println("######################");
        keySet.forEach(new Consumer<Integer>() {

            @Override
            public void accept(Integer t) {
                System.out.println(m.get(t));
            }
            
        });
        
View Code

Set entrySet() //  把entry对象放进集合,entry对象就是键值对,通过entry对象的getKey(),getValue()方法得到相应内容

            Set<Entry<Integer, String>> s = m.entrySet();
        
        for(Entry<Integer, String> e:s)
        {
            System.out.print(e.getKey());
            System.out.println(e.getValue());
        }    
View Code

void forEach(BiConsumer<? super K, ? super V> action)

        m.forEach((key, value)->{
            System.out.println("{" + key + ":" + value + "}");
        });

判断是否存在元素

boolean containsKey(Object key)

boolean containsValue(Object value)

清空

clear()

实现类HashMap与Map接口方法一致,LinkedHashMap有序

                Map<Integer, String> m = new LinkedHashMap<>();
        
        m.put(1, "qian");
        m.put(2, "sun");
        m.put(3, "li");
        m.put(4, "zhou");
        m.forEach((key, value)->{
            System.out.println("{" + key + ":" + value + "}");
        });        
// 输出
{1:qian}
{2:sun}
{3:li}
{4:zhou}
            
View Code
原文地址:https://www.cnblogs.com/YKang/p/7285336.html