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

Java集合Map详解与应用
本文深入探讨Java中Map集合的使用,包括添加、删除、判断、获取等基本操作,以及不同类型Map(如HashMap、TreeMap)的特点和应用场景。同时,展示了如何通过Map集合解决实际问题,如学生信息管理。

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

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);
 
}
}
}
 
 
 
 
 
 
 
 

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.youkuaiyun.com/heima

转载于:https://www.cnblogs.com/yzcorange/p/3959999.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值