出现的原因:现实生活中有些数据成对存在。

特点:键不可重复,值可以重复。

----------|Map                数据都是以键值对的形式存在,键唯一,值可重复。

-------------|HashMap      基于哈希表实现的。

存储原理:

往hashMap添加元素的时候,首先会调用键的hashCode()方法,得到该元素的哈希值,根据哈希值算出在哈希表中的存储位置。

情况1:如果算出的位置空,直接添加。

情况2:如果算出的位置不空,则调用equals()方法,返回true则不存储,返回false则存储。

-------------|TreeMap      基于红黑树(二叉树)实现的,会对元素的键排序存储。

注意事项:

1、添加元素的时候,如果键具备自然书序,就按键的自然顺序排序存储。

2、添加元素的时候,如果键不具备自然顺序,则元素所属的类必须实现comparable接口,把规则定义在CompareTo()方法上。

3、添加元素的时候,如果键不具备自然顺序,而且元素所属的类没有实现comparable接口,那么必须在创建TreeMap对象的时候传入比较器。

-------------|HashTable    底层也依赖于哈希表实现,但hashTable是线程安全的,操作效率低。

方法:

添加的:

put();putAll()

判断的:

containsKey();containsValue();isEmpty();

删除的:

clear();remove(object key);

迭代:

keySet()

@Override//利用String 中的字符串比较函数,比较日期

public int compareTo(Book o){

return this.date.compareTo(o.date);

}

笔试题:Collection与Collections的区别?

1、Collection是单例集合的跟接口;Collections是操作集合对象的一个工具类。

常见的方法:

1、sort()排序的,当不具备自然顺序的时候需要传入比较器。

2、max()、min()获取最大最小值,同样的,当不具备自然顺序的时候需要传入比较器。

Map(双列集合)的更多相关文章

  1. (10)集合之双列集合Map,HashMap,TreeMap

    Map中的元素是两个对象,一个对象作为键,一个对象作为值.键不可以重复,但是值可以重复. 看顶层共性方法找子类特有对象. Map与Collection在集合框架中属并列存在 Map存储的是键值对 Ma ...

  2. 双列集合Map

    1.双列集合Map,就是存储key-value的键值对. 2.hashMap中键必须唯一,值可以不唯一. 3.主要方法:put添加数据    getKey---通过key获取数据    keySet- ...

  3. Map集合——双列集合

    双列集合<k, v> Map: Map 和 HashMap是无序的: LinkedHashMap是有序的: HashMap & LinkedHashMap: put方法: 其中,可 ...

  4. 双列集合Map的嵌套遍历

    双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...

  5. Map集合(双列集合)

    Map集合(双列集合)Map集合是键值对集合. 它的元素是由两个值组成的,元素的格式是:key=value. Map集合形式:{key1=value1 , key2=value2 , key3=val ...

  6. Java之Map接口(双列集合)

    Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  7. 56. Map(双列集合)

    在生活中有些数据是以映射关系存在的,也就是成对出现的,比如:老公  老婆(key-->value) 双列集合:-------------------| Map    如果是实现了Map接口的集合 ...

  8. Day 9:双列集合Map及实现该接口的类的常用方法

    为什么要学双列集合? 因为单列集合无法处理映射关系,会有成对出现的数据 Map接口  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复 Map接 ...

  9. Java中的集合(七)双列集合顶层接口------Map接口架构

    Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-v ...

随机推荐

  1. c# MessageBox使用

    最近一直用到winform的MessageBox,感觉还是很混乱.刚好在网上发现xuenzhen的博客,特此借鉴记录一些东西. 下面的MessageBox的九中用法,来自xuenzhen的博客:htt ...

  2. C# 学习的随笔【随时更新】

    1.结束自己 Application.Exit(); //这个东西有重载函数

  3. Html5——地理定位及地图

    常用的navigator.geolocation对象有以下三种方法: 获取当前地理位置:navigator.geolocation.getCurrentPosition(success_callbac ...

  4. 聚类结果的评估指标及其JAVA实现

    一. 前言 又GET了一项技能.在做聚类算法的时候,由于要评估所提出的聚类算法的好坏,于是需要与一些已知的算法对比,或者用一些人工标注的标签来比较,于是用到了聚类结果的评估指标.我了解了以下几项. 首 ...

  5. svn上传文件

    转自:http://zhouhaitao.iteye.com/blog/1122918 如何将指定文件或文件夹直接提交到svn指定目录? 如何将指定文件或文件夹直接提交到svn指定目录? 一般我们都是 ...

  6. C# 版dll 程序集合并工具

    C# 版dll 程序集合并工具 最近要开发一个控件给同事用,开发中会引用一些第三方DLL,这样交给用户很不方便,希望的效果是直接交付一个DLL文件.网上找了一些资料. 1.       使用 Cost ...

  7. 图形设备接口(GDI)

    图形设备接口(GDI,Graphics Device Interface)负责在显示器和打印机上显示图形.GDI 是由几百个函数和一些相关的数据类型.宏和结构构成的.Windows 98/NT 中的图 ...

  8. x86_64 Ubuntu 14.04 LST安装gcc4.1.2 转载

    由于编译源码软件需要用到gcc4.1.2版本,但是本机已经安装有gcc4.8.4,下载gcc4.1.2源码编译总会出现运行找不到库文件错误,或者i386和x86_64不兼容问题,在http://ask ...

  9. number对象,bom对象

    number对象 新创建一个number的对象,toFixed是精确到位数 var num =new Number('123.1231'); console.log(num.toFixed(1)); ...

  10. tar: 从成员名中删除开头的“/”

    在压缩文件时,当后面的备份目录使用绝对路径时,会出现: tar zcvf   /usr/OutFile.tar.gz  /data/CTest tar: 从成员名中删除开头的“/” 此时,对tar增加 ...