Java——Map集合

开发中最常用的就是List集合和Map集合,Map集合是基于java核心类——java.util中的;Map集合用于储存元素对,Map储存的是一对键值(key和value),是通过key映射到它的value;下面简单介绍Map集合经常用到的的一些方法以及代码示例。

1、map.size():获取map中键值的个数

public class Demo_java_Map {
	public static void main(String[] args) {
	    Map<Object, Object> map = new HashMap<>();
		map.put("1", "java");
		map.put("2", "python");
		map.put("3", "php");
		int size = map.size();
		System.out.println("map中的键值个数为:"+size);//打印map中的键值个数
	}
}

输出结果为:map中的键值个数为:3

2、map.keySet():打印map所有的key键

public class Demo_java_Map {
	public static void main(String[] args) {
	    Map<Object, Object> map = new HashMap<>();
		map.put("1", "java");
		map.put("2", "python");
		map.put("3", "php");
		Set<Object> set = map.keySet();
		System.out.println(set);//打印map所有的key键
	}
}

输出结果为:[1, 2, 3]

3、map.values():打印map中所有的values值

public class Demo_java_Map {
	public static void main(String[] args) {
	    Map<Object, Object> map = new HashMap<>();
		map.put("1", "java");
		map.put("2", "python");
		map.put("3", "php");
		Collection<Object> collection = map.values();
		System.out.println(collection);//打印map中所有的values值
	}
}

输出结果为:[java, python, php]

4、map.get(Object key):打印键对应的值,这里有一点需要注意的是如果map.get(1)不用双引号包裹的话会打印空值,所以一定要与设置的一致

public class Demo_java_Map {
	public static void main(String[] args) {
	    Map<Object, Object> map = new HashMap<>();
		map.put("1", "java");
		map.put("2", "python");
		map.put("3", "php");
		Object object = map.get("1");
		System.out.println("key对应的values值为:"+object);//打印1对应的值
	}
}

输出结果为:key对应的values值为:java

5、map.remove(Object key):移除键和对应的values值

public class Demo_java_Map {
	public static void main(String[] args) {
	    Map<Object, Object> map = new HashMap<>();
		map.put("1", "java");
		map.put("2", "python");
		map.put("3", "php");
		map.remove("1");
		System.out.println(map);//移除1和对应的values值
	}
}

输出结果为:{2=python, 3=php}

6、map.clear():清除所有的键值,此时输出为空

public class Demo_java_Map {
	public static void main(String[] args) {
	    Map<Object, Object> map = new HashMap<>();
		map.put("1", "java");
		map.put("2", "python");
		map.put("3", "php");
		map.clear();
		System.out.println(map);//清除所有的键值,此时输出为空
	}
}

输出结果为:{}

7、Entry是Map集合中的一个内部接口,用于封装Map集合中的一组键值(key和value),这里说明一下:jdk1.5的新特性静态导入的导包方式写法为Entry,下面是迭代打印的代码

public class Demo_java_Map {
	public static void main(String[] args) {
	    Entry<?, ?> entry;
		Map<String, String> map = new HashMap<String, String>();
		map.put("1","java");
		map.put("2","python");
		map.put("3","php");
		Set<?> set = map.entrySet();//获取map的键值
		Iterator<?> iterator = set.iterator();//得到集合的迭代器
		while (iterator.hasNext()){//遍历迭代器
			entry=(Entry<?, ?>) iterator.next();//遍历出的键值放进entry集合里
		    String key = (String) entry.getKey();//得到entry的key
		    String value = (String) entry.getValue();//得到entry的value
		    System.out.println("得到的key为"+key);//输出key
		    System.out.println("得到的value为"+value);//输出value
		    }
	}
}

输出结果为:
得到的key为1
得到的value为java
得到的key为2
得到的value为python
得到的key为3
得到的value为php

8、整合map.putAll()

public class Demo_java_Map {
	public static void main(String[] args) {
		Map<String, String> map = new HashMap<>();
		map.put("1", "System.out.println()");
		map.put("2", "print()");
		map.put("3", "echo()");
		int size = map.size();
		System.out.println("map的个数为:"+size);
		Map<String, String> map2 = new HashMap<>();
		map2.put("4", "printf()");
		map2.put("5", "consle.log()");
		map2.put("6", "cout");
		int size2 = map2.size();
		System.out.println("map2的个数为:"+size2);
		map.putAll(map2);
		System.out.println("map整合map2之后的个数为:"+map.size());
	}
}

输出结果为:
map的个数为:3
map2的个数为:3
map整合map2之后的个数为:6

正在尝试写博客,把会的分享给你们,如有写的不好的地方,希望指点一下,谢谢!

### Java 中 `Map` 集合的使用方法 #### 创建和初始化 `HashMap` `java.util.HashMap` 是一种常用的实现 `Map` 接口的方式,它基于哈希表来存储键值对。创建并初始化一个简单的 `HashMap` 可以如下所示: ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { // 初始化 HashMap 实例 Map<String, Integer> map = new HashMap<>(); // 向 Map 添加元素 map.put("one", 1); map.put("two", 2); map.put("three", 3); // 输出整个 Map 的内容 System.out.println(map); // {one=1, two=2, three=3} } } ``` 这段代码展示了如何声明一个新的 `HashMap` 对象以及向其中添加一些初始数据[^1]。 #### 访问 `Map` 中的数据 为了访问已存入 `Map` 的特定条目,可以利用其提供的多种方法之一——比如通过指定键获取对应的值: ```java // 获取单个元素 Integer valueOne = map.get("one"); System.out.println(valueOne); // 输出: 1 ``` 如果尝试检索不存在于 `Map` 中的键,则返回的结果将是 `null` 或者自定义默认值(取决于是否指定了默认值)。 #### 删除 `Map` 条目 当不再需要某些条目的时候,可以通过调用 `remove()` 方法将其移除: ```java map.remove("two"); // 移除键为 "two" 的条目 if (!map.containsKey("two")) { System.out.println("'two' 已被成功删除."); } ``` 这会检查给定键是否存在,并打印相应的消息确认操作完成情况。 #### 迭代遍历 `Map` 对于迭代遍历 `Map` 内部所有的键值对,在较新的 JDK 版本 (Java 8+) 上推荐采用更简洁优雅的方式来处理这个问题 —— 即借助 Lambda 表达式配合流式编程接口 (`Stream API`) 完成此任务: ```java map.forEach((key, value) -> { System.out.println("Key: " + key + ", Value: " + value); }); ``` 上述例子中展示了一种非常直观易懂的方法来进行遍历输出[^2]。 #### 判断 `Map` 是否为空或者大小 有时可能还需要判断当前 `Map` 是否含有任何项或是计算总共有多少个不同的键存在: ```java boolean isEmpty = map.isEmpty(); int sizeOfMap = map.size(); System.out.printf("Is the map empty? %b\nSize of map is %d.\n", isEmpty, sizeOfMap); ``` 这些功能使得开发者能够更好地控制程序逻辑流程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值