《java JDK7 学习笔记》之键值对Map
2017-01-09 11:21
363 查看
一、常用的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实例,则执行结果就是有序的。
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实例,则执行结果就是有序的。
相关文章推荐
- map以自定义类型当Key(键值)
- 《Java JDK7 学习笔记》课后练习题2
- String abc = "a:baidu@b:sina@c:google",最后以键值对map存放
- JS 有序键值Map对的实现
- 基于 equals() 的 键值同步锁: generic key managed concurrent lock map
- POJ2503 Babelfish(Map键值对的应用)
- Map获取键值,Map的几种遍历方法
- c++ map的使用--键值对的集合
- Spark算子:RDD键值转换操作(1)–partitionBy、mapValues、flatMapValues
- 允许键值重复 不允许键重复 不允许建与值同时重复的MAP
- getParameterMap()获取JSP页面所有键值对数据
- map以自定义类型当Key(键值)
- Java记录 -63- Java的键值映射Map
- 使用GSON库将Java中的map键值对应结构对象转换为JSON
- List对象中装载Map时以Map中的某个键值进行排序操作
- map键值对简单使用
- map去除某个特定的键值
- es6语法之map键值对转化数组
- 使用EL表达式显示RedirectAttributes存放与FlashMap中的键值对
- Map是一个由键值对组成的数据结构