Map集合
Map:一次添加一对元素。Collection 一次添加一个元素。
Map也称为双列集合,Collection集合称为单列集合。
其实map集合中存储的就是键值对。
map集合中必须保证键的唯一性。
常用方法:
1,添加。
value put(key,value):返回前一个和key关联的值,如果没有返回null.
2,删除。
void clear():清空map集合。
value remove(key):根据指定的key翻 出这个键值对。
3,判断。
boolean containsKey(key):
boolean containsValue(value):
boolean isEmpty();
4,获取。
value get(key):通过键获取值,如果没有该键返回null。
当然可以通过返回null,来判断是否包含指定键。
int size(): 获取键值对的个数。
Map常用的子类:
|--Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。
|--Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。
|--HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。
|--TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。
Map基本使用
取出map中的所有元素
//取出map中的所有元素
//原理:通过keySet方法获取Map中的所有键所在的Set集合,再通过Set迭代器获取每一个键。
//再对每一个键获取其对应的值即可。
package test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<Integer,String> map=new HashMap<Integer,String>();
//method(map);
method_0(map);
}
public static void method_0(Map<Integer, String> map){
map.put(8, "wangwu");
map.put(2, "wangwu");
map.put(1, "xiaoqiang");
map.put(6, "hha");
Collection<String> value=map.values();
Iterator<String> it2=value.iterator();
while (it2.hasNext()) {
String v = it2.next();
System.out.println(v);
}
}
public static void method_1(Map<Integer, String> map){
map.put(8, "wangwu");
map.put(2, "ss");
map.put(1, "xiaoqiang");
map.put(6, "hha");
/*
* 通过Map转成set就可以迭代
* 找到了另一个方法。entrySet
* 该方法将键和值的映射关系作为对象存储到了Set集合中,而这个映射关系就是Map.Entry类型(结婚证)
*/
Set<Map.Entry<Integer, String>> entrySet=map.entrySet();
Iterator<Map.Entry<Integer, String>> it=entrySet.iterator();
while (it.hasNext()) {
Map.Entry<Integer,String> entry= it.next();
String value=entry.getValue();
int key=entry.getKey();
System.out.println(key+"="+value);
}
}
public static void method_2(Map<Integer, String> map){
map.put(8, "wangwu");
map.put(2, "ss");
map.put(1, "xiaoqiang");
map.put(6, "hha");
//取出map中的所有元素
//原理:通过keySet方法获取Map中的所有键所在的Set集合,再通过Set迭代器获取每一个键。
//再对每一个键获取其对应的值即可。
Set<Integer> keySet=map.keySet();
Iterator<Integer> it=keySet.iterator();
while (it.hasNext()) {
Integer key = (Integer) it.next();
String value=map.get(key);
System.out.println(value);
}
}
public static void method(Map<Integer, String> map){//学号和姓名
//添加元素
System.out.println(map.put(8, "wangcai"));//null
System.out.println(map.put(8, "xiaoqiang"));//wangcai 存相同键,值会覆盖
map.put(2, "zhangsan");
map.put(7,"zhaoliu");
map.put(17,"zhaoliu");
map.put(27,"zhao");
//删除
//System.out.println("remove:"+map.remove(7));
//判断
//System.out.println("containskey:"+map.containsKey(7));
//获取
//System.out.println("get:"+map.get(8));
System.out.println(map);
}
}