(二)、Map接口
Map集合是一个关联数组,提供键到值得映射,键不能重复 , 值可以重复,但必须要保证键的唯一性。key可以组成Set集合,value可以组成一个List集合。Map接口有如下三个常用的实现类:HashMap、HashTable、TreeMap。
Map集合提供了一下常用方法:
Put(key,value) 将指定的值与此映射中的指定键相关联;
<set>KeySet() 返回此映射中包含的键的 set 视图;
get(Object key) 返回此映射中映射到指定键的值;
<Collection>Values() 返回此映射中包含的值的 collection视图。
1.HashMap 基于哈希算法实现Map接口,底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的,并且不保证键值的顺序。
2.Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的。
3.TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序。
4.Map集合的两种取出方式:
a.Set<k> keySet:将map中所有的键存入到Set集合,因为set具备迭代器,所有可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值。
b.Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.Entry,Entry其实就是Map中的一个static内部接口。
import java.util.*;
class MapDemo
{
public static void main(String[] args)
{
Map<String,String> map = new HashMap<String,String>();
map.put("02","zhangsan2");
map.put("03","zhangsan3");
map.put("01","zhangsan1");
map.put("04","zhangsan4");
//第一种取出方式:将Map集合中的映射关系取出。存入到Set集合中。
Set<Map.Entry<String,String>> entrySet = map.entrySet();
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<String,String> me = it.next();
String key = me.getKey();
String value = me.getValue();
System.out.println(key+":"+value);
}
/*
//第二种取出方式:先获取map集合的所有键的Set集合,keySet();
Set<String> keySet = map.keySet();
//有了Set集合。就可以获取其迭代器。
Iterator<String> it = keySet.iterator();
while(it.hasNext())
{
String key = it.next();
//有了键可以通过map集合的get方法获取其对应的值。
String value = map.get(key);
System.out.println("key:"+key+",value:"+value);
}
*/
}
}