javase-collection-210622-02
- Map
Map常用接口
package bgy_map01;
/*
1. Map和Collection接口没有任何关系
2. Map集合是以 “键-值” 对儿 的方式存储元素
1)key和value都是引用数据类型
2)key和value都是存储对象的内存地址
3. Map接口常用方法
V put(K key , V value) 向Map集合中添加键值对儿
V get(Object key) 通过key来获取value
void clear() 清空Map集合
boolean containsKey(Object key) 判断Map中是否包含某个key
boolean containsValue(Object value) 判断Map中是否包含某个value
boolean isEmpty() 判断Map集合是否为空
Set<K> keySet() 获取Map集合中所有的key
V remove(Object key) 通过key来删除某个键值对儿
int size() 获取Map集合中键值对儿的个数
Collection<V> values 获取Map集合中所有的value,返回一个Collection
Set<Map.Entry<K,V>> entrySet() 将Map集合转换成Set集合,Set集合中元素的类型是Map.Entry<K,V>
Map.Entry 这是一个类型,
就好比是String,boolean等这样类型的一个类型,
它是一个静态内部类,
<K,V>是泛型。
*/
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MapTest01 {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<>();
map.put(1,"bgy01");
map.put(2,"bgy02");
map.put(3,"bgy03");
map.put(4,"bgy04");
Iterator<Integer> iterator = map.keySet().iterator();
while (iterator.hasNext()){
Integer key = iterator.next();
String value = map.get(key);
System.out.println("key: "+key);
System.out.println("value: "+value);
}
// 通过key找value
System.out.println(map.get(1));
// 通过key删除key-value
map.remove(2);
// 判断是否包含某个key
// contain方法底层调用的都是equals()方法,所以自定义的类型需要重写equal()方法。
System.out.println(map.containsKey(1)); // true
// 判断是否包含某个value
// contain方法底层调用的都是equals()方法,所以自定义的类型需要重写equal()方法。
System.out.println(map.containsValue("bgy01")); // true
// 现在new出来的Integer地址已经变了,但是还是true
System.out.println(map.containsKey(new Integer(1))); // true
// 现在new出来的String地址已经变了,但是还是true
System.out.println(map.containsValue(new String("bgy01"))); // true
// 获取map中所有的value
Collection<String> values = map.values();
for (String str : values){
System.out.println(str);
}
}
}
Map遍历
package bgy_map01;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest02 {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<>();
map.put(1,"bgy01");
map.put(2,"bgy02");
map.put(3,"bgy03");
map.put(4,"bgy04");
// 获取所有的key
Set<Integer> keys = map.keySet();
// 遍历方法01
// 迭代器 方式遍历
Iterator<Integer> it = keys.iterator();
while (it.hasNext()){
Integer key = it.next();
String value = map.get(key);
System.out.println("key: "+key);
System.out.println("value: "+value);
}
// foreach 方式遍历
for (Integer key : keys){
String value = map.get(key);
System.out.println(key+"--------->"+value);
}
System.out.println("====================================");
// 遍历方法02
// Set<Map.Entry<K,V>> entrySet() 方式遍历
// 把Map集合变成Set集合
// Set集合中元素的类型是:Map.Entry
Set<Map.Entry<Integer, String>> set = map.entrySet();
// 遍历Set集合,每一次取出一个node
Iterator<Map.Entry<Integer, String>> iterator = set.iterator();
while (iterator.hasNext()){
Map.Entry<Integer, String> node = iterator.next();
Integer key = node.getKey();
String value = node.getValue();
System.out.println("key: "+key);
System.out.println("value: "+value);
}
// foreach
// 这个方式效率较高,因为获取key和value都是直接从node对象中获取的
// 适用于大数据量
for (Map.Entry<Integer,String> node : set){
System.out.println(node.getKey()+"------->"+node.getValue());
}
}
}
Java SE Map详解:接口、操作与遍历实例
本文详细介绍了Java SE中的Map接口,包括常用方法如put(), get(), clear(), containsKey(), containsValue()等的使用,以及如何遍历Map集合。通过HashMap实例演示了如何添加、查找和删除键值对,并探讨了自定义类型在key-value对应中的注意事项。
537

被折叠的 条评论
为什么被折叠?



