最近在复习集合Collection,集合,顾名思义,就是用来存储一组可变数量的数据项的组合,这个数据项也可以是0个。
其中在Java中,有一个Map接口能够提供集合,可以供我们来进行存储数据,以便随时能够进行查找。
Map接口
属于一个集合类里面的,它定义的集合又称为查找表,存储所谓“key-value”映射对。
这里的key可以看作是value的索引,可以根据索引来找到对应的内容,即根据key,能够找到对应的value。
可以这样来表示何为Map接口提供的集合,Map<Key,Value>。
也就是可以用一张表格来形容何为Map接口提供的集合:
key | ||||
value |
这样的话就能够一目了然了,其中,在Map接口提供的集合里,是有限制条件的。
1、作为key的对象在集合中是不可重复的,比方说不能两个key都是1。
2、Map接口在使用的时候是基于键值对和散列的。
HashMap
1)构造
HashMap的话是基于哈希表的Map接口的实现。
这里我们来看看Hashmap的构造方法,可以看Java API中记录的。
HashMap(),用来构造一个空的HashMap,默认初始容量(16)和默认负载系数(0.75)。
所以可以得到HasMap test = new HashMap();这是一种。
也可以直接用Map test = new HashMap(); 因为HashMap是Map的一种。
2)添加元素
既然是添加元素,那就要添加key和value。
API中的put方法便是一种:V put(K key, V value)。
3)得到元素
API中的get方法:V get(Object key)。
4)移除元素
API中的remove方法:V remove(Object key)。
5)得到所有key
API中的keyset方法:Set<K> keySet()。
6)得到所有value
API中的values方法:public Collection<V> values()。
我们可以来给出一个最简单的实际代码例子。
package practice;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Practice {
public static void main(String[] args) {
Map test = new HashMap();//Construtor
test.put("One", new String("12"));//put element
test.put("Two", new String("123"));
test.put("Three", new String("13"));
test.remove("Three");//remove element
Set keys = test.keySet();//Get all keys
Collection values = test.values();//Get all values
System.out.println(test.get("One"));//get element
System.out.println(test.get("Two"));
System.out.println(test.get("Three"));
System.out.println(keys);
System.out.println(values);
}
}
得到的结果为:
总结一下,使用Map接口的时候,关键是要清楚key不能重复,然后在使用的时候是基于键值对和散列的,这两点尤为重要。