Java集合框架总结之Map集合的使用
来源:互联网 发布:网络棋牌害了多少人 编辑:程序博客网 时间:2024/06/10 14:34
Map与Collection的区别
Map一次添加一对元素,Collection一次添加一个元素
Map也称双列集合,Collection也称单列集合
Map集合存储的是“键——值”对,而且必须保证键的唯一性。
一、常用方法
1、基本方法
(1)添加
value put put(key,value) 返回前一个和key相关联的值,如果没有返回null
举例:key(丈夫)与value(妻子)结婚,返回值是前妻,如果是头婚,没有前妻
(2)删除
void clear() 清空Map集合
Value remove(key) 根据指定的key删除元素,返回该键对应的值
(3)判断
boolean containsKey(key)
boolean containsValue(value)
boolean isEmpty()
(4)获取
value get(key) 通过键获取值,如果没有该键,返回null
当然可以通过返回null,判断是否包含指定的键
int size() 返回键值对的个数
2、取出Map中的所有元素,keySet()方法
方法:
第一步:通过keySet()方法获取Map中所有键所在的Set集合,再通过Set的迭代器获取每一个键,对每一个键获取其对应的值即可。
<span style="font-size:14px;">class MapDemo {public static void main(String[] args) {Map<Integer, String> map = new HashMap<Integer, String>(); // 存储学号和姓名map.put(1, "zhangsan");map.put(2, "lisi");map.put(3, "wangwu");Set<Integer> keySet = map.keySet();Iterator it = keySet.iterator();while (it.hasNext()) {Integer i = (Integer) it.next();String value = map.get(i);System.out.println(i + "=" + value);}}}</span>
3、entrySet()方法
该方法将键和值的映射关系作为对象存储到Set集合中,而这个映射关系的类型就是Map.Entry类型(相当于结婚证)
<span style="font-size:14px;">Map<Integer, String> map = new HashMap<Integer, String>();Set<Map.Entry<Integer, String>> entrySet = map.entrySet();Iterator it = entrySet.iterator();while (it.hasNext()) {Map.Entry<Integer, String> entry = (Entry<Integer, String>) it.next();System.out.println(entry.getKey() + ":" + entry.getValue());}</span>
Map.Entry接口:
(1)Map.Entry接口是Map的内部静态接口
注:只有内部接口才能用static修饰
(2)为什么定义为内部接口
将键和值的映射关系封装成对象,映射关系访问的是Map中的key和value,即外部规则里面有内部规则,内部规则直接访问外部规则中的内容。
4、返回所有的值values()方法
<span style="font-size:14px;">Collection<String> values = map.values() ;Iterator it = values.iterator() ;while( it.hasNext() ){System.out.println( it.next() ) ; }</span>
注:返回类型是Collection。键是唯一的,所以返回的是Set,值不是唯一的,所以返回的是Collection。
二、Map常用子类
| -- HashTable : 内部结构是哈希表,同步。不允许null作为键和值(面试)
| -- Properties : 用来存储键值对型的配置文件的信息,可以和IO技术相结合。
| -- HashMap : 内部结构是哈希表,不同步。允许null作为键和值
| -- TreeMap : 内部结构是二叉树,不同步。可以对Map集合中的键进行排序
注:HashMap与TreeMap的用法与HashSet和TreeSet相同,二者都要保证元素唯一。
(1)HashMap存储自定义对象时,自定义对象一定要重写hashCode()和equals()
(2)TreeMap存储自定义对象时,自定义对象一定要实现Comparable接口,或者构造TreeMap时指定比较器。
- Java集合框架总结之Map集合的使用
- java集合框架---Map总结
- java基础-- 集合框架 之 Map集合
- JAVA集合框架之Map
- java集合框架之Map
- Java集合框架之Map
- Java集合框架之Map
- java集合框架之map
- Java集合框架总结之List接口的使用
- Java集合框架总结之Set接口的使用
- java基础之Map集合的使用
- Java集合之map 集合使用
- Java学习之旅--集合的使用(Map集合)
- 集合框架之Map集合
- Java集合之Map类型的集合
- java之集合框架总结
- 集合框架之map
- 集合框架之Map
- 二进制转八进制
- MFC对话框中处理Enter或Esc按键事件方法
- ASI使用介绍(Post与文件上传)
- eclipse中几种加入jar包方式的区别
- [5.18]编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号、和成绩,教师数据有编号 姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类stud
- Java集合框架总结之Map集合的使用
- Sqrt(x)-LeetCode
- Qt 关于Qt5中QPrinter问题
- KVC的一些用法
- Improve Code by Removing It
- WPF 4.5 和C#(3.1)——布局(Stackpanel, Margin)
- Install Me
- 多线程抓取豆瓣编程书籍(linux\windows都可运行)
- Chromium主文档加载流程