Map<k,v>
Map:双列集合,一次存一对,键值对,类似于python的字典。
共性功能:
1、添加
v put(key,value) //返回key的旧值
putAll(Map<k,v> map);
2、删除
void clear();
v remove(key); //删除该键并返回值
3、判断
boolean containsKey(object)
boolean containsValue(object);
boolean isEmpty();
4、获取
v get(key); //获取该键的值,不删除
int size();
例子:
public static void main(String[] args)
{
Map<Integer,String> map = new HashMap<Integer, String>();
methodDemo(map);
}
public static void methodDemo(Map<Integer,String> map){
System.out.println(map.put(, "xx"));
System.out.println(map.put(, "xxx"));
map.put(, "iii");
System.out.println(map);
}
运行结果:
null
xx
{3=xxx, 7=iii}
keySet()方法
没有迭代器,所以用Set keySet()方法,方法会取出所有的键到Set集合里面
Set<Integer> keySet = map.keySet();
for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
System.out.println(map.get(iterator.next())); }
entrySet()方法
Set<Map.Entry<Integer, String>> mapEntry = map.entrySet();
for (Iterator<Map.Entry<Integer, String>> it = mapEntry.iterator(); it.hasNext();) {
Map.Entry<Integer, String> m = it.next();
Integer key = m.getKey();
String value = m.getValue();
System.out.println(key+"->"+value); }
values()方法
同步是指只允许单一线程访问该对象
Map子类对象
Hashtable:哈希表,是同步的,不允许null键、null值
HashMap:哈希表,不同步,允许null键,null值
TreeMap:二叉树,不同步,可以对map集合中的键进行排序
练习——Map存取取出自定义类型
对象要复写hashCode()方法,保障键的唯一性
Map<Employee, String> map = new HashMap<Employee, String>();
map.put(new Employee(), "广东");
for(Employee em: map.keySet()){
System.out.println(map.get(em)); }
treeMap要实现comparable接口或者用comparator对象
hashMap要复写hashCode()方法
改成linkhashMap可以实现有序
什么时候使用map集合?
存在映射关系的。