package com.shujia.day15;
import java.util.HashMap;
import java.util.Map;
/*
Map: 存储元素的特点是每一个元素是一个键值对{【name:"魏一民"】 , 【age:18】}
Map集合的共同拥有的特点:
1、Map集合中的元素,键是唯一的,不会在一个Map集合发现两个相同的键
1001:魏一民
1002:陈真
1001:小虎
2、Map集合中,值是可以发生重复的
1001:魏一民
1002:魏一民
3、Map集合的唯一性,排序都是针对键来说的,值是跟着键走的
Map(接口)
- HashMap(底层数据结构是哈希表,元素要想保证唯一性的话,需要重写hashCode和equals方法)
-
Map接口中的成员方法:
V put(K key,V value) 向集合中添加键值对元素 返回的是被覆盖的键对应的那个值
V remove(Object key) 根据键删除一个键值对元素 返回被删除键值对的值
void clear() 清空集合
boolean containsKey(Object key) 判断键是否存在
boolean containsValue(Object value) 判断值是否存在
boolean isEmpty() 判断是否为空
int size() 获取集合中的键值对的个数
*/
public class MapDemo1 {
public static void main(String[] args) {
//创建一个Map对象
Map<Integer, String> map1 = new HashMap<>();
//V put(K key,V value) 向集合中添加键值对元素 返回的是被覆盖的键对应的那个值
System.out.println(map1.put(1001, "魏一民"));
System.out.println(map1.put(1002, "陈真"));
System.out.println(map1.put(1003, "李建国"));
System.out.println(map1.put(1001, "小虎")); // 会将上面1001键的值进行覆盖操作
System.out.println(map1.put(1004, "陈旺"));
System.out.println("map1: " + map1);
System.out.println("-----------------------------------------------");
//V remove(Object key) 根据键删除一个键值对元素 返回被删除键值对的值
// System.out.println(map1.remove(1001));
// System.out.println("map1: " + map1);
System.out.println("-----------------------------------------------");
// //void clear()
// map1.clear();
// System.out.println("map1: " + map1);
System.out.println("-----------------------------------------------");
//boolean containsKey(Object key) 判断键是否存在
System.out.println(map1.containsKey(1001));
System.out.println("-----------------------------------------------");
//boolean containsValue(Object value) 判断值是否存在
System.out.println(map1.containsValue("小虎3"));
System.out.println("-----------------------------------------------");
//boolean isEmpty()
System.out.println(map1.isEmpty());
System.out.println("-----------------------------------------------");
//int size() 获取集合中的键值对的个数
System.out.println(map1.size());
}
}
package com.shujia.day15;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
map集合的遍历
遍历方式:
方式1:先一次性获取所有的键,遍历键根据键找到值。
方式2:可以拿到每一键值对组成的一个对象,遍历这个对象中的元素得到每一个键值对中的键和值。
*/
public class MapDemo2 {
public static void main(String[] args) {
//创建一个Map对象
Map<Integer, String> map1 = new HashMap<>();
//V put(K key,V value) 向集合中添加键值对元素 返回的是被覆盖的键对应的那个值
System.out.println(map1.put(1001, "魏一民"));
System.out.println(map1.put(1002, "陈真"));
System.out.println(map1.put(1003, "李建国"));
System.out.println(map1.put(1001, "小虎")); // 会将上面1001键的值进行覆盖操作
System.out.println(map1.put(1004, "陈旺"));
System.out.println("map1: " + map1);
System.out.println("-----------------------------------------------");
//方式1:先一次性获取所有的键,遍历键根据键找到值。
//keySet() 获取map集合中所有的键,返回所有的键组成的一个Set集合
Set<Integer> keys = map1.keySet();
//遍历键集合,得到每一个键
for (Integer key : keys) {
//get() 根据键获取值
String value = map1.get(key);
System.out.println(key + "-" + value);
}
System.out.println("-----------------------------------------------");
//方式2:可以拿到每一键值对组成的一个对象,遍历这个对象中的元素得到每一个键值对中的键和值。
//entrySet() 获取每一个键值对,组成一个Set集合
Set<Map.Entry<Integer, String>> entries = map1.entrySet();
for (Map.Entry<Integer, String> entry : entries) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"-"+value);
}
}
}
标签:Map,遍历,构造方法,System,map1,键值,println,out
From: https://www.cnblogs.com/qiwei-bigdata/p/18357934