Map集合中的常用方法
* 常用方法
- 注意 Map集合中的key是无序不可重复的set集合,如果添加数据时,key值重复了,后面添加的重复数据也是可以添加成功的,但是会覆盖前面相同的数据。
1. Object put(Object key,object value) 向Map集合中添加键值对,Map中的key值是不能重复的和hashSet相同 , 存储在map集合key部分的元素需要同时重写hashcode和equals方法。
2. int size() 输出Map集合中键值对的个数 。
3. boolean isEmpty() 判断Map集合是否为空
4. boolean containsKey(Object key) 判断集合中是否包含该key值
5. boolean containsValue(Object value) 判断集合中是否包含该Value值
6. Object get(Object key) 通过key值获取value值
7. Object remove(Object key) 通过key删除整个键值对
8. Collection values() 获取Map集合中所有的 value
9. Set keyset() 获取Map集合所有的key值
10.遍历输出整个Map集合,也就是通过keyset集合的迭代器,先获取到每一个key值,然后再通过key值调用 get(Object key)方法获取到key值对应的value值。
11. Set EntrySet() 返回此映射中包含的映射关系的Set视图,将Map转换成Set集合的过程,也就是把Map集合中所有的键值对,成对输出,key和value用等号连接。
- 代码实例
package com.shige.Collection.Map;
import com.shige.OOP.Inherit.Person;
import java.util.*;
public class MapTest01 {
public static void main(String[] args) {
// 创建一个Map集合
Map personId = new HashMap(); // 父类引用指向子类对象, HashMap默认初始化容量16,默认加载因子0.75
// 1. Object put(Object key,object value) 向map集合中添加键值对 Map中的key值是不能重复的和hashset相同
// 存储在map集合key部分的元素需要同时重写hashcode和equals方法
personId.put("130825199604050713", "施耐庵");
personId.put("110258632145789652", "曹雪芹");
personId.put("140256315489961413", "罗贯中");
personId.put("198524555504050713", "吴承恩");
personId.put("130825199604050713", "施歌"); // key值重复了,该条数据会添加进去,但是会覆盖原来的数据,也就是覆盖 "施耐庵"。
//2.判断键值对的个数 int size()
int size = personId.size();
System.out.println("当前map集合中一共有 " + size + " 对");
// 3.boolean isEmpty() 判断集合是否为空
System.out.println(personId.isEmpty()); //false
// 4.boolean containsKey(Object key) 判断集合中是否包含该key值
boolean isContainKey = personId.containsKey("130825199604050713");
System.out.println(isContainKey); //true
//5.boolean containsValue(Object value) 判断集合中是否包含该Value值
boolean isContainValue = personId.containsValue("施耐庵");
System.out.println(isContainValue); //false
boolean isContainValue1 = personId.containsValue("施歌");
System.out.println(isContainValue1); //true
//6.Object get(Object key) 通过key值获取value
Object personName = personId.get("130825199604050713");
System.out.println(personName);
//7.Object remove(Object key) 通过key删除整个键值对
personId.remove("198524555504050713");
System.out.println(personId.get("198524555504050713")); //null 因为已经被移除了
System.out.println(personId.size()); // 移除了一条数据,还有三条数
/*
//8. Collection values() 获取Map集合中所有的value
Collection values = personId.values(); //将personId集合中的所有value值赋给values集合
//直接输出
System.out.println(values); // [罗贯中, 施歌, 曹雪芹]
//迭代器输出
Iterator iterator = values.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
//9.Set keyset() 获取Map集合所有的key值
Set set=personId.keySet(); //将personIdMap集合中的所有key值赋给新的Set集合
//直接输出
System.out.println(set);
//使用迭代器输出
Iterator iterator1=set.iterator(); //给迭代器重新赋值
while (iterator1.hasNext()){
System.out.println(iterator1.next());
}
// 10. 遍历Map集合,同输出<key,value> 方法一
Set set=personId.keySet();
Collection collection=personId.values();
Iterator iterator1=set.iterator();
Iterator iterator2=collection.iterator();
while(iterator1.hasNext()){
Object key=iterator1.next();
Object value=iterator2.next();
System.out.println("<"+key+","+value+">");
}
*/
//11. 遍历Map集合,同输出<key,value> 方法二
Set set=personId.keySet();
Collection collection=personId.values();
Iterator iterator=set.iterator();
while(iterator.hasNext()){
Object key=iterator.next();
Object value=personId.get(key); //通过key来获取value
System.out.println("<"+key+","+value+">");
}
//12. Set EntrySet() 返回此映射中包含的映射关系的Set视图,将map转换成set集合的过程
Set setView=personId.entrySet();
Iterator iterator1=setView.iterator();
while (iterator1.hasNext()){
System.out.println(iterator1.next());
//输出样式:
// 140256315489961413=罗贯中
// 130825199604050713=施歌
// 110258632145789652=曹雪芹
}
}
}