Map集合:
该集合存储键值对,一对一对的往里存,而且要保证键的唯一性
1添加
put(key value);putAll();
2删除
clear();remove(Object key);
3判断
containsValue(Object value);containsKey(Object key);isEmpty()
;
4获取
get(Object key);size();value();
重点的方法:entrySet() 和keySet();
Map:常用的三个子类:
|--HashTable:底层是哈希表数据结构,不可以存入null键或者null
值。该集合是线程同步的JDK1.0
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null
对象都可以用作键或值。
|--HashMap:底层是哈希表树结构,可以存入null键或者null值,该
集合是线程不同步的JDK1.2 效率高
|--TreeMap:底层是二叉树结构,线程不同步,可以用于给map集合
中的键进行排序。
其实Set底层就是使用了Map集合
map集合的两种取出方式:
map集合取出的原理:将map集合转成set集合。再通过迭代器取出。
1:keySet:将map中所有的键存入到set集合。因为set集合具备迭代
器。所以可以迭代方式取出所有键,在根据get方法。获取每一个键对
应的值。
import java.util.*;
public class MapDemo
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String [] args)
{
Map<String,String> mp = new
HashMap<String,String>();
mp.put("01","zhangsan1");
mp.put("02","zhangsan2");
mp.put("03","zhangsan3");
mp.put("04","zhangsan4");
//定义一个keySet集合
Set<String> keySet = mp.keySet();
Iterator<String> it = keySet.iterator();
while(it.hasNext())
{
String key = it.next();
String value = mp.get(key);
sop(key+"<----->"+value);
}
}
}
2 Set<Map.Entry<k,v>>entrySet();将map集合中的映射关系存入
到了set集合中,而这个关系的数据类型就是:map.Entry
import java.util.*;
public class MapDemo
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String [] args)
{
Map<String,String> mp = new
HashMap<String,String>();
mp.put("01","zhangsan1");
mp.put("02","zhangsan2");
mp.put("03","zhangsan3");
mp.put("04","zhangsan4");
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.Entry 其实Entry也是一个接口,他是map接口中的一个内部接口
。
interface Map
{
public static interface Entry
{
public abstract Object getKey();
public abstract Object getValue();
}
}
希望有点帮助!
|