JAVA Map在java中的应用,
分享于 点击 39435 次 点评:266
JAVA Map在java中的应用,
Map的概述:
/*
* 需求:实现学号和姓名这样有对应关系的数据存储
* 为了体现这种有对应关系的数据 Java为我们提供了一种专门用于存储对应关系的集合,我们称之为Map
* Map:将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值
* Map和Collecton的区别?
* Map:一个双列集合 常用于处理有对应关系的数据 key是不可以重复的 我们也称之为夫妻对集合
* Collection:单列集合 Collection有不同的子体系 有的允许重复 有索引 有序 有的不允许重复并且无序 那么
* 我们也称之为单身汉集合
* 一对一:一个学号对应一个姓名
* */
public class MapDemo {
public static void main(String[] args) {
}
}
Map中的常用函数:
import java.util.HashMap;
import java.util.Map;
/*
*Map的常用功能 相对简单的一些功能
* 映射功能:
* V put(K key, V value)
将key映射到value,如果key存在,就覆盖value,并返回原来的value值。
* 获取功能:
* V get(Object key)
返回到指定键所映射的值,或 null如果此映射包含该键的映射。
int size()
返回此地图中键值映射的数量。
Set<K> keySet()
返回此地图中包含的键的Set视图。
* 判断功能:
* boolean containsKey(Object key)
如果此映射包含指定键的映射,则返回 true 。
boolean containsValue(Object value)
如果此地图将一个或多个键映射到指定的值,则返回 true 。
boolean isEmpty()
如果此地图不包含键值映射,则返回 true 。
* 删除功能:void clear()
从该地图中删除所有的映射(可选操作)。
V remove(Object key)
如果存在(从可选的操作),从该地图中删除一个键的映射,并返回key所对应的值,如果没有删除成功就返回null。
遍历功能:
Set<Map.Entry<K,V>> entrySet()
返回此地图中包含的映射的Set视图。
*/
public class MapDemo2 {
public static void main(String[] args) {
// 获取Map对象
Map<String,String> map = new HashMap<String,String>();
//V put(K key, V value)
//将指定的值与该映射中的指定键相关联(可选操作)。
map.put("201758503119","于振涛");
map.put("201758503120","李文奇");
System.out.println(map);
//* boolean containsKey(Object key)
System.out.println(map.containsKey("201758503119"));
//boolean containsValue(Object value)
System.out.println(map.containsValue("于振涛"));
//boolean isEmpty()
System.out.println(map.isEmpty());
//int size()
System.out.println(map.size());
//V get(Object key)
System.out.println(map.get("201758503119"));
System.out.println(map);
// V remove(Object key)
System.out.println(map.remove("201758503119"));
System.out.println(map);
//void clear()
map.clear();
}
}
keySet() 和 values()的测试:
import java.util.*;
/*
keySet() 和 values()的测试
* Collection<V> values()
返回此地图中包含的值的Collection视图。
Set<K> keySet()
返回此地图中包含的键的Set视图。 */
public class MapDemo3 {
public static void main(String[] args) {
// 获取Map对象
Map<String,String> map = new HashMap<String,String>();
//V put(K key, V value)
//将指定的值与该映射中的指定键相关联(可选操作)。
map.put("201758503118","王永衡");
map.put("201758503119","于振涛");
map.put("201758503120","李文奇");
//Set<K> keySet()
Set<String> keys = map.keySet(); //这里是存储所有的key 因为key不重复 所以以set的形式返回
for (String key:keys
) {
System.out.println(key);
}
//Collection<V> values()
Collection<String> values = map.values();
for (String value:values
) {
System.out.println(value);
}
}
}
Map的第一种遍历方式:
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
*
* 首先召集所有的Key
* 遍历所有的Key
* 获取每一个key
* 让每一个key去找他自己的value*/
public class MapDemo4 {
public static void main(String[] args) {
// 创建map对象
Map<String,String> map = new HashMap<String,String>();
//将指定的值与该映射中的指定键相关联(可选操作)。
map.put("201758503118","王永衡");
map.put("201758503119","于振涛");
map.put("201758503120","李文奇");
//遍历Map对象
//首先召集所有的丈夫
Set<String> keys = map.keySet(); //这里是存储所有的key 因为key不重复 所以以set的形式返回
for (String key:keys
) {
String value = map.get(key);
System.out.println("学号"+key+"姓名"+value);
}
}
}
Map的第二种遍历方式:面向对象的方式 通过Entry对象:
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
*
* 通过结婚证对象来获取丈夫和媳妇
* //Set<Map.Entry<K,V>> entrySet()
//返回此地图中包含的映射的Set视图。
* */
public class MapDemo5 {
public static void main(String[] args) {
//创建map对象
Map<String,String> map = new HashMap<String,String>();
//添加映射关系
map.put("201758503118","王永衡");
map.put("201758503119","于振涛");
map.put("201758503120","李文奇");
//获取所有结婚证对象
Set< Map.Entry<String,String>> entrys = map.entrySet();
//遍历包含了所有结婚证对象的集合
for(Map.Entry<String,String> entry:entrys)
{
//获取每个单独的结婚证对象
//通过结婚证对象获取丈夫和媳妇
String key = entry.getKey();
String value = entry.getValue();
System.out.println("学号"+key+"姓名"+value);
}
}
}
使用HashMap存储数据并遍历(字符串作为key):
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*使用HashMap存储数据并遍历(字符串作为key)
* 要去重 方法和hashset一样。*/
public class HashMapDemo {
public static void main(String[] args) {
//创建map对象
HashMap<String,String> hm= new HashMap<String,String>();
//添加映射关系
hm.put("201758503118","王永衡");
hm.put("201758503119","于振涛");
hm.put("201758503120","李文奇");
//遍历map对象
Set<String> keys = hm.keySet();
for (String key:keys)
{
String value = hm.get(key);
System.out.println(key+"="+value);
}
}
}
使用hashmap存储结构并遍历(自定义对象作为key):
import java.util.HashMap;
import java.util.Set;
/*使用hashmap存储结构并遍历(自定义对象作为key)*/
public class HashMapDemo2 {
public static void main(String[] args) {
//创建map对象
HashMap<People,String> hm= new HashMap<People,String>();
//创建key对象
People p1 = new People("zhangsan",18);
People p2 = new People ("lisi",20);
//添加映射对象
hm.put(p1,"201758503119");
hm.put(p2,"101758503120");
//遍历map对象
Set<People> keys = hm.keySet();
for (People key:keys)
{
String value = hm.get(key);
System.out.println(key+"="+value);
}
}
}
public class People{
String name;
int age;
public People(String name,int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "People{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
相关文章
- 暂无相关文章
用户点评