/*Map集合:他是一个双列集合,什么是双列集合呢?
- 就是,Map集合里面存储的元素都是成对出现的,她们是有映射关系的, 也就是有一一对应的关系
- Map<K,V> K,V存储的都是对象,并且,通过K可以获取V
- K:指的是key键
- V:指的是value值
- Map集合的常见方法:写的都要求全会
- 添加:
- V put(key,value)返回的是什么? 返回的是前一个与key对应的value值
- 注意:如果存储的两个元素,共用了同一个key键,那么后一个添加的元素,会覆盖前一个元素,该方法返回的就是前一个元素的value值
- 如果有没重复的key键,返回的是null
- 删除:
- V remove(key);通过键,删除指定键对应的value值
- void clear();
- 判断:
*boolean cantainsKey(key);包含指定的键吗
*boolean cantainsValue(value);包含指定的值吗
*boolean isEmply();该集合存在元素吗,是空吗
*获取:
*V get(key);根据指定的键,获取键所对应的值
*注意:如果该键不存在的话,返回的是null,所以,当调用get()方法返回值为null的时候,也说明了该集合不存在该键!
*
*int size();返回键值对的个数
*
*
*
*注意:map集合是没有迭代器方法的,那么如何获取元素呢?
*map<K,V>
*可以通过把K放到一个单例集合里,然后通过迭代K,获取value的值
*!!!!!!!!!!!!!!!!!!其中一个主要方法 Set集合 keySet();
-
演示: Set keyset = map.keySet();Set集合属于单列集合,是有迭代器的
-
Iterator it = keyset.iterator();把所有的键放在一个集合里,通过迭代所有的键,不就可以获取所有的值了吗
- 获取所有的值: Collection coll = map.values();
- */
package HashMap;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<Integer,String> map = new HashMap<Integer,String>();
//输出添加方法: System.out.println(map.put(2, “hehe”));null
// System.out.println(map.put(3, “haha”));null
// System.out.println(map.put(2, “heihei”));hehe
map.put(3, "wangcai");
map.put(8, "xiaoqiang");
map.put(6, "wangwu");
map.put(1, "zhaosi");
// System.out.println(map); {1=zhaosi, 3=wangcai, 6=wangwu, 8=xiaoqiang}
//删除:
System.out.println(map.remove(1));//zhaosi
System.out.println(map.get(3));//wangcai
System.out.println(map.get(5));//结果:null,也说明了该键不存在
show(map);
}
//主要方法Set keyset = map.keySet();演示
public static void show(Map<Integer,String> map){
Set<Integer> keyset = map.keySet();//获取所有的键
Iterator<Integer> it = keyset.iterator();//准备迭代所有的键
while(it.hasNext()){
Integer key = it.next();
// System.out.println(key+":"+map.get(key));
String value = map.get(key);
System.out.println(key+":"+value);
}
}
}