一、Map接口
Collection、Set、List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à value的形式存储在集合之中
二、常用方法
No.
|
方法或类
|
类型
|
描述
|
1
|
public void clear()
|
普通
|
清空Map集合
|
2
|
public boolean containsKey(Object key)
|
普通
|
判断指定的key是否存在
|
3
|
public boolean containsValue(Object value)
|
普通
|
判断指定的value是否存在
|
4
|
public Set<Map.Entry<K,V>> entrySet()
|
普通
|
将Map对象变为Set集合
|
5
|
public boolean equals(Object o)
|
普通
|
对象比较
|
6
|
public V get(Object key)
|
普通
|
根据key取得value
|
7
|
public int hashCode()
|
普通
|
返回哈希码
|
8
|
public boolean isEmpty()
|
普通
|
判断集合是否为空
|
9
|
public Set<K> keySet()
|
普通
|
取得所有的key
|
10
|
public V put(K key, V value)
|
普通
|
向集合中加入元素
|
11
|
public void putAll(Map<? extends K,? extends V> t)
|
普通
|
将一个Map集合中的内容加入到另一个Map
|
12
|
public V remove(Object key)
|
普通
|
根据key删除value
|
13
|
public int size()
|
普通
|
取出集合的长度
|
14
|
public Collection<V> values()
|
普通
|
取出全部的value
|
三、例子
package com.pb.demo2; public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
package com.pb.demo2; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import com.pb.demo1.Person; public class MapTest { public static void main(String[] args) { /* * 1.创建多个Person对象并赋值 */ Person p1 = new Person("张三",21); Person p2 = new Person("李四",22); Person p3 = new Person("王五",23); Person p4 = new Person("赵六",24); Person p5 = new Person("钱七",25); //2.创建保存键--值对的集合对象 Map<String,Person> perMap=new HashMap<String,Person>(); //3.使用put将英文名与对象按照键-值对的方式在座存储在HashMap中 perMap.put("Denny", p1); perMap.put("Jony", p2); perMap.put("Rose", p3); perMap.put("Kitter", p4); perMap.put("Boby", p5); //4.打印键集 System.out.println("++++++++打印键集+++++++++"); System.out.println(perMap.keySet()); //5.打印值集 System.out.println("=========打印值集======="); System.out.println(perMap.values()); //6.打印键-值对集合 System.out.println("=========打印键-值对集合======="); System.out.println(perMap); //7.判断是否存在"Denny"这个键 if(perMap.containsKey("Denny")){ //8.如果存在,根据键获取相应的值 Person p =perMap.get("Denny"); System.out.println("姓名: "+p.getName()); System.out.println("年龄: "+p.getAge()); } System.out.println("=======遍历HashMap======="); //遍历HashMap //首先遍历key集合,keySet方法返回的是Set集合 Set<String> keySet=perMap.keySet(); Iterator<String> iterator=keySet.iterator(); while(iterator.hasNext()){ String key=iterator.next(); System.out.print("英文名:"+key); //根据key值取出值 Person p =perMap.get(key); System.out.print(" 姓名: "+p.getName()); System.out.println(" 年龄: "+p.getAge()); } } }