码迷,mamicode.com
首页 > 其他好文 > 详细

Map的使用

时间:2015-05-11 20:02:03      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

1.Map接口

  Map接口定义的集合又称查询表,用于存储所谓"Key-Value"映射对。Key可以看成是Value的索引,作为Key的对象在集合中不可以重复。

  根据内部结构的不同,Map接口有多种实现类,其中常用的内部类为hash表实现的HashMap和内部为排序二叉树实现的TreeMap。

2.put()方法

  Map接口中定义了向Map中存放元素的put方法:

    -V put(K key,V value)

  将Key-Value对存入Map,如果在集合中已经包含该Key,则操作将替换该Key所对应的Value,返回值为该Key原来所对应的Value(如果没有则返回null)。

3.get()方法

  Map接口中定义了从Map中获取元素的get方法:

    -V get(Object Key)

  返回参数key所对应的Value对象,如果不存在则返回null。

4.containsKey()方法

  Map接口中定义了判断某个key是否在Map中存在:

    -boolean containsKey(Object key);

    若Map中包含给定的key则返回true,否则返回false.

5.hashCode方法

  从HashMap的原理中我们可以看到,key的hashcode()方法的返回值对HashMap存储元素时会起着很重要的作用。而hashCode方法实际上是在Object中定义的。那么应妥善重写该方法;

  对于重写了equals方法的对象,一般要妥善的重写继承自Object类的hashCode方法(Object提供的hashCode方法将返回该对象所在内存地址的整数形式)。

  重写hashCode方法是需注意两点:其一、与equals方法的一致性,即equals比较返回true的两个对象其hashCode()方法返回值应该相同;其二、hashCode返回的数值应符合hash算法的要求,试想如果有很多对象的hashCode方法的返回值都相同,则会大大降低hash表的效率,一般情况下可以使用IDE(如Eclipse)提供的工具自动生成HashCode方法。 

6.装载因子及HashMap优化。

  Capacity:容量,hash表里bucket(桶)的数量,也就是散列数组大小。

  Initial capacity:初始容量,创建hash表时,初始bucket的数量,默认构建容量是16,也可以使用特定的容量。

  Size:大小,当前散列表中存储数据的数量。

  Load factor:加载因子,默认值0.75(就是75%),当向散列表增加数据时如果

 

Map的使用

标签:

原文地址:http://www.cnblogs.com/Crow00/p/4495254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!