Map集合没有继承Collection接口,其提供的是key到value的映射。Map集合中不能包含相同的key。每个key只能映射一个value。key还决定存储对象在映射中的存储位置,但不是有key对象本身决定的,而是通过一种“散列技术”进行处理,产生一个散列码的整数值。散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置。Map集合包括Map接口以及Map接口的所有实现类。

当添加相同key值时,程序不会报错,会发生覆盖。
map集合没有Iterator迭代器,去遍历这个集合只能通过其他方法。
详细介绍:http://blog.csdn.net/qq_36330228/article/details/77427354
Map常用子类:
Hashtable:内部结构是哈希表,是同步的。不允许null作为键值,null作为值
HashMap: 内部结构是哈希表,是不同步的。允许null作为键值,null作为值(无序)
TreeMap:内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序(有序)



package com.wql;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;/*** Map集合演示* * @author wql**/
class EMP {private String e_id;private String e_name;public EMP(String e_id, String e_name) {super();this.e_id = e_id;this.e_name = e_name;}public String getE_id() {return e_id;}public String getE_name() {return e_name;}}public class MapDemo3 {public static void main(String[] args) {// TODO 自动生成的方法存根System.out.println("----------------------HashMap演示------------------------------");Map<String, String> map = new HashMap<>();//HashMap集合EMP emp = new EMP("351", "张三");EMP emp2 = new EMP("512", "李四");EMP emp3 = new EMP("853", "王一");EMP emp4 = new EMP("125", "赵六");EMP emp5 = new EMP("341", "黄七");map.put(emp4.getE_id(), emp4.getE_name());map.put(emp5.getE_id(), emp5.getE_name());map.put(emp.getE_id(), emp.getE_name());map.put(emp2.getE_id(), emp2.getE_name());map.put(emp3.getE_id(), emp3.getE_name());Set<String> set = map.keySet(); // keySet方法得到key键值Iterator<String> it = set.iterator();System.out.println("HashMap类实现的Map集合,有序");while (it.hasNext()) {String key = it.next();String value = map.get(key);System.out.println(key + " " + value);}System.out.println("----------------------TreeMap演示------------------------------");TreeMap<String, String> treemap = new TreeMap<>();//TreeMap集合treemap.putAll(map);        //直接复制HashMap集合元素Set<String> set2 = treemap.keySet();Iterator<String> iter = set2.iterator();System.out.println("TreeMap类实现的Map集合,无序");// keySet方法得到key键值while (iter.hasNext()) {String key2 = iter.next();String value2 = treemap.get(key2);System.out.println(key2 + " " + value2);}}}

运行:

转载于:https://www.cnblogs.com/wangqilong/p/9417565.html

Map集合HashMap,TreeMap相关推荐

  1. Map集合HashMap TreeMap的输出方法

    Map集合HashMap TreeMap的输出方法     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51934301 ...

  2. Set集合[HashSet,TreeSet,LinkedHashSet],Map集合[HashMap,HashTable,TreeMap]

    ------------ Set ------------------- 有序: 根据添加元素顺序判定, 如果输出的结果和添加元素顺序是一样 无序: 根据添加元素顺序判定,如果输出的结果和添加元素的顺 ...

  3. java hashmap api_JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    一.Map简述 1.1.简述 public interface Map 类型参数:K - 此映射所维护的键的类型 keyV - 映射值的类型 value该集合提供键--值的映射.key不能重复,一对对 ...

  4. 黑马程序员-Map集合

    Map总结:tree排序,hsah保证唯一性 Map集合特点:该集合存储键值对,一对一对往里存,而且要保证键的唯一性. Map和Set很像,Set底层就是使用了Map集合.Map没有迭代器,要靠key ...

  5. 在java商城开发中map集合的应用

    在java商城开发中map集合的put方法(Object key, Object value)添加一个"值"(想要得东西)和与"值"相关联的"键&qu ...

  6. (10)Java泛型-Map集合-集合框架工具类-可变参数-静态导入

    -- 部分1.5新特性Java泛型-Map集合-集合框架工具类 泛型 概述: JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 对于泛型可以这样理解: 没有使用泛型时,只要是对 ...

  7. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化

    1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...

  8. Map集合,Collections(集合工具类)

    一:Map接口概述 将键映射到值的对象 ,每个键只能对应一个映射值,一个映射不能包含重复的键 二:Map集合基本功能 V put(K key,V value) K是键 V是映射的值 如果键相同则值覆盖 ...

  9. 我是怎么跟面试官聊Map集合的

    我习惯了无所谓,却不是真的什么都不在乎.                 请关注:源码猎人 目录 简介 Map 框架 Map 接口源码解读 Map 内部类Entry接口源码 AbstractMap 抽 ...

最新文章

  1. 单击事件开启线程时,再次单击就会出现 java.lang.IllegalThreadStateException: Thread already started. 错误
  2. 计算机5G英语文献,5G移动网络外文文献翻译2018中英文.docx
  3. Java工具类DateFormatUtils详解
  4. Python——三级菜单
  5. PHP-php.ini中文版
  6. c语言burg算法,用Burg算法提升空间调制傅里叶光谱仪分辨率与定阶方法
  7. centos操作---搭建环境 安装python
  8. Java反射库jOOR简介
  9. python创建excel重复写入_Python小练习:创建并写入Excel
  10. 让云触手可及——微软云计算解决方案白皮书
  11. 十、基于FPGA的PCIE协议介绍(二)
  12. 七日杀局域网找不到服务器,7日杀局域网的联机教程步骤图
  13. java ftp上传文件 linux_linux下用java实现ftp上传、下载文件
  14. css表格随内容变化,css 使表格随着内容自动适应宽度
  15. 薇电子学与计算机好中吗,微电子学与计算机是什么级别的期刊
  16. 基于51单片机的智能汽车雨刷控制系统方案原理图程序设计
  17. PB关于打印机纵向横向打印的设置
  18. mysql telnet无法打开主机连接_求助:不能打开主机连接,在端口 3306: 连接失败...
  19. ContentPane
  20. 金蝶K3cloud python插件之更新物料列表自定义字段(成本更新)

热门文章

  1. FreeTextBox 3.1.6 的实践总结和几个问题
  2. pytorch中获取指定位置元素
  3. [深度学习-优化]dropout防止过拟合的理解
  4. java ajax级联_jQuery ajax级联二级菜单(转)
  5. 【例题+习题】【数值计算方法复习】【湘潭大学】(一)
  6. 三角函数公式【转载】
  7. 相机标定中部分疑问和注意事项
  8. ffmpeg编码越来越小_从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(5)
  9. ios 表情符号 键盘_ios – 将键盘布局更改为表情符号
  10. c语言第四版第8章答案,C语言答案第8章.doc