首页 > 代码库 > 黑马程序员——集合(map)

黑马程序员——集合(map)

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 = http://www.mamicode.com/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

黑马程序员——集合(map)