【编程语言】java--Map

来源:互联网 发布:仿淘宝商城源码java 编辑:程序博客网 时间:2024/05/17 09:32
Map
接口 和collection并列
特点:存储键值对,而且要保证键的唯一性
特殊方法:
获取 entrySet() keySet() 关键

HashTable、HashMap、HashSet
HashTable 底层哈希表数据结构,键或值不能为空,必须实现hashCode,equals方法,该方法是线程同步的 JDK1.0 效率低
HashMap 底层是哈希表数据结构 ,并允许使用空键空值,线程不同步 JDK1.2 效率高
TreeMap 底层是二叉树数据结构,线程不同步,可以用于给Map集合进行排序
和HashSet很向,set底层就是使用了map方法,set是collection的子接口
如果存放相同的键值对第二次覆盖第一次

元素取出方式:Map集合取出原理,将Map集合转成Set集合
KeySet 将Map中所有的键存进了Set集合,Set集合具备迭代器,能够用迭代器取出所有的值
Set<Map.Entry<K,V>
将Map集合中的映射关系取出
Map.Entry其实Entry可是一个接口,是Map接口中的一个内部接口
public static interface Entry
{
}
接口中可以定义内部接口


练习:
统计字符串中每个字母出现的次数
 思路
1、将字符串转换成字符数组,因为要对每一个字母进行操作
2、定义一个Map集合,因为打印结果的字母有顺序,所以使用TreeMap集合
3、遍历字符数组
  将每一个字母作为键去查map集合。
  如果返回null,将该字母和1存入到Map集合
如果返回的不是null,说明该字母在Map集合中已经存在并有相应的次数
那么就获取该次数并进行自增,然后将字母和自增后的次数存入搭到Map集合中
原创粉丝点击