下面要给大家介绍的就是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工具网来进行了解哦。
推荐阅读: