java Map集合详细介绍,java map

KLQ 2020-08-25 15:39:09 java常见问答 9460

下面要给大家介绍的就是java map集合方面的内容,对于这方面你有了解吗?那么下面就一起通过文章内容来进行一下详细的了解吧。

Map是一种键-值对(key-value)集合,Map集合当中的每一个元素都包含一个键(key)对象和一个值(value)对象,用来保存具有映射关系的数据。

Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value。

key和value都能够是任何引用类型的数据。

Map的key不允许重复,value可以重复,也就是,同一个Map对象的任何两个key通过equals方法比较总是返回false。

Map中的key和value之间存在单向一对一关系,也就是,通过指定的key,总能找到唯一的、确定的 value。

从Map当中取出数据的时候,只要给出指定的key,就能够取出对应的value。

Map接口主要有两个实现类:

HashMap 类和TreeMap类。

HashMap类按哈希算法来存取键对象,TreeMap类可以对键对象进行排序。

下面是Map接口的常用方法;

void clear()---删除该Map对象中的所有key-value对;

boolean containsKey(Object key)---查询Map中是否包含指定的key,如果包含则返回true;

boolean containsValue(Object value)---查询Map中是否包含一个或多个value,假如包含,那么返回true;

V get(Object key)---返回Map集合中指定键对象所对应的值,V表示值的数据类型;

V put(K key, V value)---向Map集合中添加键-值对,假如,当前Map中已有一个与这个key相等的key-value对,那么,新的key-value对会覆盖原来的key-value对;

void putAll(Map m)---将指定Map中的key-value对复制到本Map中;

V remove(Object key)---从Map集合中删除key对应的键-值对,返回key对应的value,假如这个key 不存在,那么返回null;

boolean remove(Object key, Object value)---这是Java 8新增的方法,删除指定key、value所对应的key-value对,假如,从该Map中成功地删除该key-value对,该方法返回true,否则返回false;

Set entrySet()---返回Map集合中所有键-值对的Set集合,此Set集合中元素的数据类型为Map.Entry;

Set keySet()---返回Map集合中所有键对象的Set集合;

boolean isEmpty()---查询该Map是否为空(也就是不包含任何key-value 对),假如,为空,那么,返回true;

int size()---返回该Map里key-value对的个数;

Collection values()---返回该Map里所有value组成的Collection;

Map集合最典型的用法就是成对地添加、删除key-value对,接下来即可判断该Map中是否包含指定key,也可以通过Map提供的keySet()方法获取所有key组成的集合,进而遍历Map中所有的key-value对。

下面将来示范一下Map的基本功能,示例1。

每一个学生都有自己唯一的编号,也就是学好,在毕业的时候要将这个学生的信息从系统当中删除掉。

下面的话编写java程序,使用HashMap来存储学生信息,其键为学生学号,值为姓名。

毕业的时候,需要用户输入学生的学号,并根据学号进行删除操作。

在该程序中,两次使用 while 循环遍历HashMap集合。当有学生毕业时,用户需要输入该学生的学号,根据学号使用HashMap类的remove()方法将对应的元素删除。

代码实现:

public class Test09
{
    public static void main(String[] args)
    {
        HashMap users = new HashMap();
        users.put("11", "张浩太"); // 将学生信息键值对存储到Map中
        users.put("22", "刘思诚");
        users.put("33", "王强文");
        users.put("44", "李国量");
        users.put("55", "王路路");
        System.out.println("******** 学生列表 ********");
        Iterator it = users.keySet()
            .iterator();
        while (it.hasNext())
        {
            // 遍历 Map
            Object key = it.next();
            Object val = users.get(key);
            System.out.println("学号:" + key + ",姓名:" + val);
        }
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要删除的学号:");
        int num = input.nextInt();
        if (users.containsKey(String.valueOf(num)))
        { // 判断是否包含指定键
            users.remove(String.valueOf(num)); // 如果包含就删除
        }
        else
        {
            System.out.println("该学生不存在!");
        }
        System.out.println("******** 学生列表 ********");
        it = users.keySet()
            .iterator();
        while (it.hasNext())
        {
            Object key = it.next();
            Object val = users.get(key);
            System.out.println("学号:" + key + ",姓名:" + val);
        }
    }
}

程序运行结果:

******** 学生列表 ********
学号:44,姓名:李国量
学号:55,姓名:王路路
学号:22,姓名:刘思诚
学号:33,姓名:王强文
学号:11,姓名:张浩太
请输入要删除的学号:
22
******** 学生列表 ********
学号:44,姓名:李国量
学号:55,姓名:王路路
学号:33,姓名:王强文
学号:11,姓名:张浩太
******** 学生列表 ********
学号:44,姓名:李国量
学号:55,姓名:王路路
学号:22,姓名:刘思诚
学号:33,姓名:王强文
学号:11,姓名:张浩太
请输入要删除的学号:
44
******** 学生列表 ********
学号:55,姓名:王路路
学号:22,姓名:刘思诚
学号:33,姓名:王强文
学号:11,姓名:张浩太

注意一下:

TreeMap类的使用方法和HashMap类相同,唯一区别就是TreeMap类可以对键对象进行排序。

以上的内容就介绍到这里了,假如你还想了解更多和Java Map集合相关的java基础知识,可以继续的关注奇Q工具网来进行了解哦。

推荐阅读:

java对象转map怎么操作?map如何转化成Java对象?

java Set集合,TreeSet类详细介绍

java Set集合,HashSet类详细介绍