栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java(Map接口)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java(Map接口)

1、Map用于保存具有映射关系的数据:Key---Value(双列元素)

2、Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中

Node newNode(int hash, K key, V value, Node next) {
        return new Node<>(hash, key, value, next);
    }

3、Map中的key不允许重复,当有重复的key时,value就会发生替换

4、Map中的value可以重复

5、Map的key可以为null,value也可以为null,注意key为null时,只能有一个,value为null时,可以为多个

6、常用的String类作为Map的key

7、key和value之间存在单向一对一关系,即通过指定的key总能找到对应的value

8、Map存放数据的key--value是放在一个Node中的,同时Node实现了Entry接口

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Study {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        HashMap hashMap = new HashMap();
        hashMap.put("no1","jack");
        hashMap.put("no2","smith");
        //1.k-v最后是HashMapNode$ node = newNode(hash,key,value,null)
        //2.k-v为了方便程序员的遍历,还会创建EntrySet集合,该集合存放的元素类型为Entry
        //  而一个Entry对象就有k,v EntrySet>,即:transient Set> entrySet;
        //3.在entrySet中,定义的类型是Map.Entry,但实际上存放的还是HashMap$Node
        //  因为HashMap$Node implements Map.Entry
        //4.当把HashMap$Node对象存放到entrySet里面将会方便我们遍历
        //  因为Map.Entry提供了getKey()和getValue()方法
        Set set = hashMap.entrySet();
        System.out.println(set.getClass());//此时的set的getClass为 EntrySet
        //public Set> entrySet() {
        //        Set> es;
        //        return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;
        //    }
        for (Object obj : set) {
            //向下转型
            Map.Entry entry = (Map.Entry) obj;
            System.out.println(entry.getKey()+" "+entry.getValue());
        }
        Set set1 = hashMap.keySet();
        System.out.println(set1.getClass());//KeySet
        Collection value = hashMap.values();
        System.out.println(value.getClass());//Values
    }
}
Map接口的常用方法:

1、put:添加(如果键相同,则value发生替换)

2、remove:根据键删除映射关系

3、get:根据键获取值

4、size:获取元素个数

5、isEmpty:判断个数是否为0

6、clear:清除

7:containsKey:查找键是否存在

import java.util.HashMap;

public class Study {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        HashMap hashMap = new HashMap();
        //put
        hashMap.put("no1","jack");
        hashMap.put("no2","a");
        hashMap.put("no3","b");
        hashMap.put("no1","smith");
        System.out.println(hashMap);
        //remove
        hashMap.remove("no2");
        System.out.println(hashMap);
        //get
        System.out.println(hashMap.get("no1"));
        //size
        System.out.println(hashMap.size());
        //isEmpty
        System.out.println(hashMap.isEmpty());
        //clear
        hashMap.clear();
        System.out.println(hashMap);
        //containsKey
        System.out.println(hashMap.containsKey("no1"));
    }
}
Map接口对象遍历方式:

1、keySet:获取所有的键

2、values:获取所有的值

3、entrySet:获取所有关系

import java.util.*;

public class Study {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        HashMap hashMap = new HashMap();
        hashMap.put("no1","a");
        hashMap.put("no2","b");
        hashMap.put("no3","c");
        //先取出所有的Key,通过Key取出对应的Value
        Set set = hashMap.keySet();
        for (Object key : set) {
            System.out.println(hashMap.get(key));
        }
        //迭代器
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            Object key = iterator.next();
            System.out.println(hashMap.get(key));
        }
        //取出所有的values
        Collection values = hashMap.values();
        //for,增强for,迭代器
        for (Object value : values) {
            System.out.println(value);
        }
        Iterator iterator1 = values.iterator();
        while (iterator1.hasNext()) {
            Object value = iterator1.next();
            System.out.println(value);
        }
        //通过EntrySet来获取
        Set entrySet = hashMap.entrySet();//EntrySet>
        //增强for
        for (Object kv : entrySet) {
            Map.Entry entry = (Map.Entry) kv;
            System.out.println(entry.getKey()+"-"+entry.getValue());
        }
        //迭代器
        Iterator iterator2 = entrySet.iterator();
        while (iterator2.hasNext()) {
            Object kv = iterator2.next();
            Map.Entry entry = (Map.Entry) kv;
            System.out.println(entry.getKey()+"-"+entry.getValue());
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992557.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号