JAVA总结系列之Map

来源:互联网 发布:淘宝格子铺怎么入驻 编辑:程序博客网 时间:2024/04/30 17:54

Map:一次添加一对元素。Collection 一次添加一个元素。
Map也称为双列集合,Collection集合称为单列集合。
其实map集合中存储的就是键值对。 
map集合中必须保证键的唯一性。 


常用方法:
1,添加。
value put(key,value):返回前一个和key关联的值,如果没有返回null.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(): 获取键值对的个数。 
map的重点方法:

/*Collection(v)values() 建是唯一的,但是值不是唯一的。
         返回此映射中包含的值的 Collection 视图。
*/
keySet() 
          返回此映射中包含的键的 Set 视图
          详细用法见MapDemo.java

Map常用的子类:
|--Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。
|--Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。 
|--HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。
|--TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。 

Map集合和Collection集合的区别?
1,Map中一次存储是键值对。
Collection中一次存储是单个元素。
2,Map的存储使用的put方法。
Collection存储使用的是add方法。 
3,Map的取出,是讲Map转成Set,在使用迭代器取出。
Collection取出,使用就是迭代器。
4,如果对象很多,必须使用容器存储。
如果元素存在着映射关系,可以优先考虑使用Map存储或者用数组,
如果没有映射关系,可以使用Collection存储。

Map常用的子类:

Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。

Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。

HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。

TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合

 

练习:

  "fdgavcbsacdfs获取该字符串中,每一个字母出现的次数。

现在已经将键与值存储到map集合中了,那么如何将其逐一取出,并转换成字符串打印出来呢?

思路

首先要将其取出:这就需要利用键的唯一性将map转换成set集合,进而定义出一个迭代器来取出元素。其次要转成字符串输出:这时因为我们最终的目的是转成字符串,所以我们首先要想到是否有字符串对象,可以提供加入以及转成字符串输出方法

private static String mapToString(Map<Character, Integer> map) {

StringBuilder sb = new StringBuilder();

//StringBuilder:一个可变的字符序列

Iterator<Character> it = map.keySet().iterator();

//map.keySet()此方法返回此映射中包含的键的 Set 视图,

//iterator()此方法由set调用,返回一个迭代器对象。

while(it.hasNext()){

Character key = it.next();

Integer value = map.get(key);

sb.append(key+"("+value+")");//形式:key(value)

append(String str):将指定的字符串追加到此字符序列。

return sb.toString();

toString():返回此序列中数据的字符串表示形式。



0 0
原创粉丝点击