package com.yang.ex2;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
/*集合Map:该集合存储键值对,一对一对的往里面存,而且要保证键的唯一性
* 1.添加
* put(K key ,V value)
* putAll
* 2.删除
* clear()
* remove(Object key)
* 3.判断
* containsKey/Value
* boolean
* isEmpty()
* 4.获取
* get(Object key)
* size()
* values()
*
* entrySet
* KeySet
*
* Map:
* ----HashTable:底层是哈希表数据结构,不可以存入null作为键 null作为值的结构,该集合是线程同步的jdl 1.0效率低
* ----HashMap:底层是哈希表数据结构,允许使用Null键null值,该集合是不同步的。jdk1.2 效率高
* ----TreeMap:底层是二叉树数据结构,线程不同步。可以用于给Map集合中的键进行排序
*
* Set底层调用的都是使用Map的集合
*
* */
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String, String> map = new HashMap<String, String>();
// 添加元素
System.out.println(map.put("01", "zhangsan1"));
System.out.println(map.put("01", "wangwu"));
//新添加的值 吧老值给替代了。如果出现相同得键,那么后添加得值会替代原有的值
//并且put方法会返还被覆盖的值
map.put("01", "zhangsan1");
map.put("02", "zhangsan2");
map.put("03", "zhangsan3");
map.put("04", "zhangsan4");
System.out.println(map.containsKey("02"));
System.out.println(map.remove("02"));
System.out.println(map);
System.out.println(map.get("03"));
map.put("04", null);
System.out.println(map.get(null));
//可以通过get方法的返回值来判断,一个键是否存在,通过返回null来判断
//获取map集合中,所有的值。
Collection<String> collection=map.values();
System.out.println(collection);
System.out.println(map);
}
}
package com.yang.ex2;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.print.attribute.standard.Media;
//map集合的两种取出的方式
//1. Set<key> keySet: 将map中所有的键存入到了Set集合。因为Set集合具备迭代器,所有可以通过迭代方式可以取出所有的键
//再通过get方法获取每一个键对于得值
//Map集合的取出原理:将map集合转成set集合,在通过迭代器取出
//2. Set<Map.Entry<k,v>> entrySet: 将map集合中的映射关系存入到set集合中
// 而这种数据关系就是map.Entry
public class Demo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String, String> map = new HashMap<String, String>();
map.put("01", "zhangsan1");
map.put("02", "zhangsan2");
map.put("03", "zhangsan3");
map.put("04", "zhangsan4");
// 將Map集合中的 映射关系取出,存入到Set集合中
Set<Map.Entry<String, String>> entrySet = map.entrySet();
Iterator<Map.Entry<String, String>> iterator = entrySet.iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
String key = entry.getKey();
String valueString = entry.getValue();
System.out.println(key + valueString);
}
//那么关系对象Map.Entry获取到后,就可以通过Map.Entry中的getKey和
//getValue方法获取关系中的键和值
// 先获取map集合中的所有键的set集合。keySet();
// Set<String> keySet = map.keySet();
// 有了Set集合,就可以获取其迭代器。
// Iterable<String> iterable = keySet.iterator();
// while (iterable.hashNext()) {
// String key = iterable.next();
// 有了键,就可以通过map集合 获取其对应的值
// String value = map.get(key);
// System.out.println(key);
// }
}
//其实Map.Entry 其实Entry也是一个接口 它是Map接口中的一个内部接口
//静态 并且是公共的
}
package com.yang.ex2;
import java.util.HashMap;
import java.util.Iterator;
/*map扩展知识
* map集合被使用是因为具备映射关系
* “yureban” "01" "zhangsan"
* "yureban" "02" "lisi"
* "jiuyeban" "01" "wangwu"
* "jiuyeban" "02" "zhaosi"
*
* 一個学校有多个教室,每个教室有多个名称
*
*
* */
public class Demo3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String, String> yureHashMap=new HashMap<String, String>();
yureHashMap.put("01", "zhangsan");
yureHashMap.put("02", "lisi");
HashMap<String, String> jiuyeHashMap=new HashMap<String, String>();
yureHashMap.put("01", "wangwu");
yureHashMap.put("02", "zhaosi");
HashMap<String,HashMap<String,String>> czbk =new HashMap<String,HashMap<String,String>>();
czbk.put("yureban", yureHashMap);
czbk.put("jiuyeban", jiuyeHashMap);
yureHashMap.put("01", "zhangsan");
yureHashMap.put("02", "lisi");
//遍历czbk集合,获取所有教室
Iterator<String> iterator=czbk.keySet().iterator();
while (iterator.hasNext()) {
String roomName = iterator.next();
HashMap<String, String> room=czbk.get(roomName);
System.out.println(roomName);
System.err.println(room);
}
//getStudentInfo(yureHashMap);
}
public static void getStudentInfo(HashMap<String,String> roomMap) {
Iterator<String> iterator=roomMap.keySet().iterator();
while (iterator.hasNext()) {
String id = iterator.next();
String name=roomMap.get(id);
System.out.println(id+name);
}
}
}
详情请查看:http://edu.csdn.net/heima