欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java之集合(二)

程序员文章站 2022-05-13 20:01:03
...

java之集合(二)

六、映射
<K,V>
K :key 键
V: value 值
Key-value 键值对

Map中将键和值放在一起,表示成了一个类–Entry

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 MapDemo {
	public static void main(String[] args) {
		Map<String,Integer> map = new HashMap<>();
		
		// 添加数据
		// 添加一个键值对  键(key)是德玛西亚  值(value) 100
		map.put("德玛西亚", 100);
		// 如果有相同的key,那么会被覆盖
		map.put("帅哥", 60);
		map.put("帅哥", 90);
		map.put("美女", 80);
		map.put("小姐姐", 70);
		map.put(null, null);
		map.put(null, 1);
		System.out.println(map);
//		
//		// 查看是否有key
//		boolean b = map.containsKey("美女1");
//		System.out.println(b);
//		
//		// 查看是否有value
//		System.out.println(map.containsValue(71));
//		
//		// 根据key获取value
//		Integer value = map.get("小姐姐");
//		System.out.println(value);
//		
//		System.out.println(map);
//		// 删除
//		map.remove("德玛西亚");
//		System.out.println(map);
//		
//		// 将所有的value转换为集合
//		Collection<Integer> coll = map.values();
//		System.out.println(coll);
		
		// 遍历map的方式一
		// 获取键值对的对象的set
		Set<Entry<String,Integer>> set = map.entrySet();
		// 遍历map  获取所有的key和value
		// 遍历set  -- 使用迭代器
		Iterator<Entry<String,Integer>> it = set.iterator();
		while (it.hasNext()){
			// 获取到所有的键值对
			Entry<String,Integer> entry = it.next();
			// 获取key
			String key = entry.getKey();
			// 获取value
			Integer v = entry.getValue();
			System.out.println("key是  " + key + "\t" + "value 是 " + v);
		}
		
		// 遍历map的方式二
		// [fef,ere,tert,ere]  
		// 通过key再获取value
//		System.out.println(map.keySet());
		Set<String> set1 = map.keySet();
//		遍历set获取每一个key
		// 获取迭代器
		Iterator<String> it1 = set1.iterator();
		while (it1.hasNext()){
			String key = it1.next();
			// 通过key获取到value
			Integer v = map.get(key);
			System.out.println("key是  " + key + "\t" + "value 是 " + v);
		}
		
		// 遍历map方式三

		for (Entry<String,Integer> e : map.entrySet()) {
			System.out.println("key的值是    =  " + e.getKey() + "value的值是   =" + e.getValue());
		}
		
	}
}

HashMap是异步线程不安全的,初始容量16,加载因子默认是0.75
HashMap可以将键值设置为null

HashTable默认初始容量是11,加载因子默认是0.75
HashTable扩容:每次是原来容量的一倍再加1
10 – 21
HashTable键值不可以为null

映射不是集合
映射属于集合框架(framework)中的一员
集合框架:为数据的存储和取出服务