一、常用的Map操作类

1、使用HashMap

Map也支持泛型语法,泛型的Map实例:

建立Map操作对象时,可以使用泛型语法指定键与值的类型。上图键使用String,值也使用String类型。要建立键值对应,可以使用put()方法,第一个自变量是键,第二个自变量是值。对于Map而言,键不会重复,判断键是否重复是根据hashCode()与equals(),作为键的对象必须操作hashCode()与equals()方法。若要指定键取回对应的值,则使用get()方法。

在HashMap中建立键对值应之后,键是无序的,可以在执行结果中看到。如果想让键是有序的,则可以使用TreeMap。

2、使用TreeMap

如果使用TreeMap建立键值对应,则键的部分将会排序,条件是作为键的对象必须操作Comparable接口,或者是在创建TreeMap时指定操作Comparator接口的对象。例如:

由于String有操作Comparable接口,因此看到的结果是根据键的首字母来排序的(从A到Z的顺序)。

创建了StringComparator类实现了Comparator<String>接口,并重写了compare()方法。

创建TreeMap时指定StringComparable实例,使得键的首字母按照从Z到A的顺序排序。

3、使用properties

Properties类继承自HashTable,HashTable操作了Map接口,所以Properties也有Map的行为。虽然也可以使用put()方法设定键值对应,get()方法指定键取回值,不过一般常用Properties的setProperties()指定字符串类型的键值,getProperties()取回指定字符串类型的键对应的字符串类型的值,通常称为属性名称与属性值。例如:

以上的load()方法结束后,会自动关闭InputStream实例。如果命令行自变量指定了person.properties的路径位置,则执行结果为键对应的值。

二、访问Map键值

上图中使用的是HashMap实例,所以执行结果是无序的。若是改为TreeMap实例,则执行结果就是有序的。

《java JDK7 学习笔记》之键值对Map的更多相关文章

  1. 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性

    本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...

  2. 《java JDK7 学习笔记》之对象封装

    1.构造函数实现对象初始化流程的封装.方法封装了操作对象的流程.java中还可以使用private封装对象私有数据成员.封装的目的主要就是隐藏对象细节,将对象当做黑箱子进行操作. 2.在java命名规 ...

  3. 《java JDK7 学习笔记》之异常处理

    1.java中所有的错误都会被打包为对象,JVM会尝试执行try区块中的程序代码,如果发生错误,执行流程会跳离错误发生点,然后比较catch括号中声明的异常类型,是否符合被抛出的错误对象类型,如果是的 ...

  4. 《java JDK7 学习笔记》之继承与多态

    1.面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承.应该正确判断使用继承的时机及继承之后灵活的运用多态,才是学习继承时的重点. 2.程序代码重复在程序设计上,就是 ...

  5. 《java JDK7 学习笔记》之Collection

    一.使用Collection 收集对象 1.认识Collection架构 Java SE提供了满足各种需求的API,在使用这些API前,建议先了解其继承与接口操作架构,才能了解何时使用哪个类,以及类之 ...

  6. 《java JDK7 学习笔记》之类和对象

    1.在java中,要产生对象必须先定义类,类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例对象要使用new关键词.以类名声明的变量,称为参考名称.参考变量或直接叫参考. 2.想 ...

  7. 《java JDK7学习笔记》之跨平台与路径设置

    Platforms表示Solaris.Linux.Windows各种操作系统平台,在这些平台上架构了java Virtaul Machine,简称JVM,Java虚拟机. Java虚拟机可以让java ...

  8. 《java jdk7学习笔记》之java三大平台

    Sun公司在2006年底,就将三大平台正名为java SE.java EE和java ME.也有很多人习惯用J2SE.J2EE和J2ME. 1.java SE java SE(标准版)是各应用平台的基 ...

  9. 《java JDK7 学习笔记》之接口与多态

    1.对于"定义行为"也就是接口,可以使用interface关键字定义,接口中的方法不能操作,直接标示为abstract,而且一定是public修饰的. 类要操作接口,必须使用imp ...

随机推荐

  1. 解析XML最快速的方式

    采用提JAXB技术 1.根据xml生成xsd 执行:java -jar trang.jar a.xml a.xsd 2.根据java的xjc来生成实现类 执行:xjc a.xsd 注:在执行前最好把数 ...

  2. NOIP2014 无线网络发射器选址

    1.无线网络发射器选址 (wireless.cpp/c/pas) [问题描述] 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平 ...

  3. HW7.11

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  4. angularjs 中ie兼容性的问题收集

    今天在项目中做ie8的兼容的时候,发现angularjs中一些内容这样写有问题,那样写就没有问题了,自己记录一下内容: 如果遇到了ie8中使用$http.post请求不到数据的时候,以下的方法是获取不 ...

  5. Sitecore Digital Marketing System, Part 1: Creating personalized, custom content for site visitors(自定义SiteCore中的 Item的Personalize的Condition) -摘自网络

    Sitecore’s Digital Marketing System (DMS) can help you personalize the content your site displays to ...

  6. hdoj 5124 lines【线段树+离散化】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5124 题意:给你n段区间,他们有重合的点A,问你重合最多次的点A重合多少次 题解:对区间离散化后,维护 ...

  7. nyoj 14 会场安排问题

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  8. SQL Server中取两个表的交集,并集和差集

    在项目中遇到要取两个表差集的情况 假设有两个表tblNZPostCodes, NZPostcode  两个表中存储的都是新西兰的post code信息,字段一致,只是数据上有所差异. 1. Union ...

  9. iOS——UIButton响应传参数

    - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; 方法是 ...

  10. 【36】绝不重新定义继承而来的non-virtual方法

    1.绝不重新定义继承而来的non-virtual方法,为什么? 首先想想,non-virtual方法是干什么的?也就是说,它的使用场景.父类的non-virtual方法,其实就是告诉子类,继承实现,子 ...