------- android培训、java培训、期待与您交流! ----------
Map集合.
Collection
一次存储一个对象作为集合的一个元素...
程序更复杂的需求.
需要保存对象和对象之间的关系的. 如何保存?
贪吃蛇游戏:
配置信息: key value
高 10
宽 20
集合特殊,一次可以存储2个对象, 并保存这个对象之间一一对应的映射关系...
key value
学号 <->学生
身份证号 <->人
查看文档:
该集合Map 和Collection 体系不同,一次存储2个对象.这两个对象在Map集合中称之为键(key)和值(value)
该集合key 不能重复(唯一的), 值和键之间的映射是一一对应的.
Map 接口的方法实例:
package cn.itcast.c_map;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapDemo1 {
public static void main(String[] args) {
// testPut();
// testMapMethod();
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1001, "jack");
map.put(1002, "rose");
map.put(1003, "lucy");
map.put(1004, "lucy");
// 取出Map 集合中的所有元素.
// 方式一: values 方法,取出Map 集合中所有的值(value)
// 缺点: 无法通过值取出对应的键, Map 集合的值是可以重复的...
Collection<String> coll=map.values();
Iterator<String> it = coll.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//方式二: keySet 方法, 取出Map 集合中所有的键(key)
// 缺点: 不面向对象.
Set<Integer> set=map.keySet();
Iterator<Integer> sit = set.iterator();
while(sit.hasNext()){
int key=sit.next();
//System.out.println(key);
String value=map.get(key);
System.out.println(key+":"+value);
}
//方式三: entrySet 方法. 取出Map集合中所有的键值映射(Entry 对象)
Set<Entry<Integer,String>> entrySet=map.entrySet();
//获取Set 集合的迭代器. 该Set 集合存储的Entry 对象.
Iterator<Entry<Integer,String>> eit=entrySet.iterator();
// 使用迭代器逐个取出该Set 集合中的每一个Entry对象.
while(eit.hasNext()){
Entry<Integer,String> entry=eit.next();
// 使用Entry 对象的专业的get 方法,获取键和值.
Integer key = entry.getKey();
String value=entry.getValue();
System.out.println(key+"#"+value);
}
}
public static void testMapMethod() {
// 1. 创建Map 集合
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1001, "jack");
map.put(1002, "rose");
map.put(1003, "lucy");
map.put(1004, "lucy");
// 2.putAll 批量增加.
Map<Integer, String> map1 = new HashMap<Integer, String>();
map1.put(100, "李磊");
map1.put(102, "韩梅");
map1.put(103, "张三");
map.putAll(map1);
System.out.println(map);
// 3. remove(Object key) 通过键,删除对应的键值对. 返回被删除的键对应的值.
System.out.println(map.remove(1002));
System.out.println(map);
// 4. 注意: remove 只能通过键删除对应的键值对.
System.out.println(map.remove("jack"));
System.out.println(map);
// 5. clear 清空集合.
// map.clear();
// System.out.println(map);
// 6. get(Object key) 通过key 获取key 对应的值.
// 6.1 注意, 只提供了通过key 获取值的方法,没有通过值获取key 的方法.
System.out.println(map.get(1001));
// 7.containsKey 检测集合是否包含指定的键.
// 8.containsValue 检测集合是否包含指定的值.
System.out.println(map.containsKey(1001));
System.out.println(map.containsKey(1009));
System.out.println(map.containsValue("jack"));
System.out.println(map.containsValue("张三丰"));
}
public static void testPut() {
// 1. 创建Map 集合
Map<Integer, String> map = new HashMap<Integer, String>();
// 2. 使用map 集合存储元素... 一次存储2个对象, 成为键(key)和值(value)
System.out.println(map.put(1001, "jack"));
System.out.println(map.put(1002, "rose"));
System.out.println(map.put(1003, "lucy"));
// 3. 打印集合
System.out.println(map);
System.out.println(map.size());
// 4. 所谓的一一映射,键唯一,键和值之间的映射是一对一的. 如果尝试往指定的键添加新值,新值覆盖旧值.
System.out.println(map.put(1001, "xxx"));
System.out.println(map);
}
}
package cn.itcast.c_map;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapTest {
/**
* @param args
*/
public static void main(String[] args) {
//test1();
test2();
}
public static void test2() {
//创建Map
Map<Integer, String> map = new HashMap<Integer,String>();
map.put(1001, "seek1");
map.put(1002, "seek2");
map.put(1003, "seek3");
map.put(1004, "seek4");
// 取出Map 集合中的所有元素.
// 方式一: values 方法,取出Map 集合中所有的值(value)
// 缺点: 无法通过值取出对应的键, Map 集合的值是可以重复的...
Collection<String> coll = map.values();
Iterator<String> it = coll.iterator();
while (it.hasNext()) {
sop(it.next());
}
//方式二: keySet 方法, 取出Map 集合中所有的键(key)
// 缺点: 不面向对象.
Set<Integer> coll1 = map.keySet();
Iterator<Integer> it1 = coll1.iterator();
while (it1.hasNext()) {
int key = it1.next();
String value = map.get(key);
sop(key+" : "+value);
}
//方式三: entrySet 方法. 取出Map集合中所有的键值映射(Entry 对象)
Set<Entry<Integer, String>> set =map.entrySet();
//获取Set 集合的迭代器. 该Set 集合存储的Entry 对象.
Iterator<Entry<Integer, String>> iit = set.iterator();
// 使用迭代器逐个取出该Set 集合中的每一个Entry对象.
while (iit.hasNext()) {
Entry<Integer, String> s = iit.next();
Integer key = s.getKey();
String value = s.getValue();
sop(key+"----"+value);
}
}
public static void test1() {
//创建Map
Map<Integer, String> map = new HashMap<Integer,String>();
//put(K key, V value)添加元素
map.put(101, "jake1");
map.put(102, "jake2");
map.put(103, "jake3");
sop(map);
//putAll(Map<? extends K,? extends V> m) 批量添加
Map<Integer, String> map1 = new HashMap<Integer,String>();
map1.put(111, "rose1");
map1.put(112, "rose2");
map1.put(113, "rose3");
sop(map1);
map.putAll(map1);
sop(map);
//一对一,键是唯一的,如果给指定的键添加薪值,那么子新值会覆盖旧值。
map.put(101, "rose");
sop(map);
// remove(Object key) 通过键,删除对应的键值对. 返回被删除的键对应的值.
map.remove(111);
sop(map);
//clear 清空集合.
//map.clear();
//sop(map);
//get(Object key) 通过key 获取key 对应的值.
sop(map.get(113));
//containsKey 检测集合是否包含指定的键.
sop(map.containsKey(112));
//.containsValue 检测集合是否包含指定的值.
sop(map.containsValue("rose2"));
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
相关推荐
Java__Map集合.mp4
day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、递归 day09_字节流、字符流 day10_缓冲流、转换流、序列化流、Files day11_网络编程 day12_...
m_map使用方法详细介绍,采用matlab下载世界地图,可以获取海岸线等数据库
一个ive_map的小demo,通过打印像素值的变化帮助大家理解HI_MPI_IVE_Map这个函数
可以用m_map画世界地图(全球IGS站绘制代码)
Matlab中m_map包使用官方手册中文翻译,自己翻译并备注,实用性很高,适合新手入门学习m_map。
C++11 unordered_map与map(插入,遍历,Find)效率对比。
matlab地图工具包m_map的中文说明书,内含各种应用个例
END_MESSAGE_MAP宏的内部实现原理
下载的protos包里只有string_int_label_map.proto这个文件,没有string_int_label_map_pb2.py文件,运行时会出现错误。自己去生成pb2文件比较麻烦。上传的这个string_int_label_map_pb2.py本机可正常使用。
jdevice_id_map.bat.pdf
m_map是一款基于matlab 的地理绘图软件,通过网页翻译生成了中文版的说明书,可以结合英文版本的说明书,一起学习。
一个C++stl:unordered_map实现实例,用于了解熟悉算法。
elasticsearch启动后自动关闭:max virtual memory areas vm.max_map_count [65530] is too low, increase to at… elasticsearch 我遇到的问题是用docker 启动elasticsearch后会自动关闭,具体关闭时间点没注意,...
hash_map
JAVA__MAP_+__LIST__SET和MAP的区别+_Map的三种遍历方法
SacredGold_Map_EnglishSacredGold_Map_English
.jdevice_id_map.bat
关于hash_map的用法与解释: #include <hash_map> #include #include using namespace std; //define the class class ClassA{ public: ClassA(int a):c_a(a){} int getvalue()const { return c_a;} void ...