Java集合框架(三)---Map

接口Map<K,V>
Map集合:该集合存储键值对,一对一对往里存,而且要保证键的唯一性。
1,添加
put(K key, V value)
putAll(Map<? extends K, ? extends V> m)
2,删除
clear()
remove(Object key)
3,判断
containsValue(Object value)
containsKey(Object key)
isEmpty()
4,获取
get(Object key)
size()
values()
entrySet()
keySet()
Map
—Hashtable:底层是哈希数据结构,不可以存入null键null值,该集合是线程同步的。jdk1.0,效率低
—HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步,jdk1.2效率高
—TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map结合中的键排序

和Set很像,其实Set底层就是使用了Map集合。

Map共性方法

public class Demo {
   
	public static void sop(Object object){
   
		System.out.println(object);
	}
	public static void main(String[] args) {
   
		
		 Map<String, String> map = new HashMap<String, String>();
		 //添加元素,如果出现添加时相同的键,那么后添加的值会覆盖原有键值对,并put方法会返回覆盖的值
		 map.put("01", "zhangsan1"); 
		 map.put("02", "zhangsan2");
		 map.put("03", null);
		 map.put("04", "zhangsan4");
		 
		 sop("containsKey = "+map.containsKey("01"));
		 sop("remove =  "+map.remove("02"));
		 //可以通过get方法的返回值来判断一个键是否存在,通过返回null来判断
		 sop("get = "+map.get("03"));
		 //获取map集合中所用的集合,是无序的
		 Collection<String> collection = map.values();
		sop(collection); 	
	}

打印结果:

containsKey = true
remove =  zhangsan2
get = null
[zhangsan4, zhangsan1, null]

Map-keySet

Set keySet:将Map中所有的键存入到Set集合,因为Set具备迭代器。所以可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值。

Map 集合的取出原理:将map集合转成Set集合,在通过迭代器取出。

public class Demo {
   
	public static void sop(Object object){
   
		System.out.println(object);
	}
	public static void main(String[] args) {
   
		 Map<String, String> map = new HashMap<String, String>();
		 map.put("01", "zhangsan1");
		 map.put("02", "zhangsan2");
		 map.put("03", "zhangsan3");
		 map.put("04", "zhangsan4");
		 //先获取Map集合的所有键的Set集合,keySet()
		 Set<String> keyset = map.keySet();
		 //有了Set集合,就可以获取其迭代器
		 Iterator<String> iterator = keyset.iterator();
		 while (iterator.hasNext()) {
   
			String string = (String) iterator.next();
			sop("key = "+string+", value = "+ map.get(string));
		}
	}

打印结果:

key = 04, value = zhangsan4
key = 01, value = zhangsan1
key = 02, value = zhangsan2
key = 03, value = zhangsan3

keyset原理图:
在这里插入图片描述
Map-entrySet

Set<Map.Entry<k,v> entrySet: 将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是Map.Entry

public class Demo {
   
	public static void sop(Object object){
   
		System.out.println(object);
	}
	public static void main(String[] args) {
   
		
		 Map<String, String> map = new HashMap<String, String>();
		 map.put("01", "zhangsan1");
		 map.put("02", "zhangsan2");
		 map.put("03", "zhangsan3");
		 map.put("04", "zhangsan4");
		 
		 Set<Map.Entry<String, String>> entries=  map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值