首页 > 其他分享 >《数据篇》Map

《数据篇》Map

时间:2024-02-04 16:57:40浏览次数:26  
标签:Map map System value key println 数据 out

遍历Map的四种方法

链接:https://blog.csdn.net/qq_19314763/article/details/79049070

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapTest {
	public static void main(String[] args) {
		Map<Integer, String> map = new HashMap<>();
		//map集合存入数据
		map.put(1, "第一个value");
		map.put(2, "第二个value");
		map.put(3, "第三个value");

		//通过keySet取出map数据[for-each循环]
		System.out.println("-------[for-each循环遍历]通过keySet取出map数据-------");
		Set<Integer> keys = map.keySet();   //此行可省略,直接将map.keySet()写在for-each循环的条件中
		for(Integer key:keys){
			System.out.println("key值:"+key+" value值:"+map.get(key));
		}

		//通过EntrySet取出map数据[for-each循环]
		System.out.println("-------[for-each循环遍历]通过EntrySet取出map数据-------");
		Set<Entry<Integer, String>> entrys = map.entrySet();  //此行可省略,直接将map.entrySet()写在for-each循环的条件中
		for(Entry<Integer, String> entry:entrys){
			System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue());
		}

		//通过keySet取出map数据[Iterator遍历]
		System.out.println("-------[Iterator循环遍历]通过keySet取出map数据---------");
		Iterator<Integer> it = map.keySet().iterator();  //map.keySet()得到的是set集合,可以使用迭代器遍历
		while(it.hasNext()){
			Integer key = it.next();
			System.out.println("key值:"+key+" value值:"+map.get(key));
		}

		//通过EntrySet取出map数据[Iterator遍历]
		System.out.println("-------[Iterator循环遍历]通过EntrySet取出map数据---------");			
		Iterator<Entry<Integer, String>> iterator = map.entrySet().iterator();  //map.entrySet()得到的是set集合,可以使用迭代器遍历
		while(iterator.hasNext()){
			Entry<Integer, String> entry = iterator.next();
			System.out.println("key值:"+entry.getKey()+" value值:"+entry.getValue());
		}
	}	
}

遍历Map的四种方法(更好)

链接:https://c.biancheng.net/view/6872.html

1)在 for 循环中使用 entries 实现 Map 的遍历(最常见和最常用的)。

public static void main(String[] args) {
	Map<String, String> map = new HashMap<String, String>();
	map.put("Java入门教程", "http://c.biancheng.net/java/");
	map.put("C语言入门教程", "http://c.biancheng.net/c/");
	for (Map.Entry<String, String> entry : map.entrySet()) {
		String mapKey = entry.getKey();
		String mapValue = entry.getValue();
		System.out.println(mapKey + ":" + mapValue);
	}
}

2)使用 for-each 循环遍历 key 或者 values,一般适用于只需要 Map 中的 key 或者 value 时使用。性能上比 entrySet 较好。

Map<String, String> map = new HashMap<String, String>();
map.put("Java入门教程", "http://c.biancheng.net/java/");
map.put("C语言入门教程", "http://c.biancheng.net/c/");
// 打印键集合
for (String key : map.keySet()) {
	System.out.println(key);
}
// 打印值集合
for (String value : map.values()) {
	System.out.println(value);
}

3)使用迭代器(Iterator)遍历

Map<String, String> map = new HashMap<String, String>();
map.put("Java入门教程", "http://c.biancheng.net/java/");
map.put("C语言入门教程", "http://c.biancheng.net/c/");
Iterator<Entry<String, String>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
	Entry<String, String> entry = entries.next();
	String key = entry.getKey();
	String value = entry.getValue();
	System.out.println(key + ":" + value);
}

4)通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作。

for(String key : map.keySet()){
	String value = map.get(key);
	System.out.println(key+":"+value);
}

标签:Map,map,System,value,key,println,数据,out
From: https://www.cnblogs.com/fusio/p/18006497

相关文章

  • 鱼和熊掌如何兼得?一文解析 RDS 数据库存储架构升级
    在2023年云栖大会上,阿里云数据库产品事业部负责人李飞飞在主题演讲中提到,瑶池数据库推出“DB+存储”一体化能力,结合人工智能、机器学习、存储等方法和创新能力,实现BufferPoolExtension能力和智能冷温热数据分层能力。在大会的《云数据库RDS年度发布与最佳实践》演讲中,阿里......
  • 《数据篇》base64,编码和解码
    链接:https://blog.csdn.net/qq_40006446/article/details/80236496关于base64编码Encode和Decode编码的几种方式Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便。在实际应用上,Base64除了能将Binary资料......
  • C++多线程 第三章 在线程间共享数据
    第三章在线程间共享数据共享数据基本问题如果所有共享数据都只读,那就没有问题.不变量(invariants):对特定数据结构总为真的语句.例如:"该变量表示线程数量."修改线程之间共享数据的一个常见潜在问题就是破坏不变量.竞争条件(racecondition):线程竞争执行各自的操作,导......
  • 《数据篇》Date
    输出当前时间链接:https://blog.csdn.net/qq_42802111/article/details/81947304直接输出//引包importjava.util.Date;//实例化,法1java.util.Datedate=newjava.util.Date();//实例化,法2Datedate=newDate();//打印System.out.println("date:"+date);Syste......
  • Collectors.toMap的暗坑与避免方式
    使用Java的stream中的Collectors可以很方便地做容器间的转换,可以少写很多代码。但是其中有暗含的坑需要注意和避免,本文探讨Collectors.toMap(JDK8版本)。Collectors.toMap可以将一个流转化成Map,常见于需要将List转换成Map以便于进一步操作的场景,比如在通过RPC接口获取一个返回结果......
  • 【DM】修改集合(嵌套表类型)中数据
    declaretyperecord_tableisrecord(idint,valvarchar(128),namevarchar);typev_tableistableofrecord_table;tempChangev_table;begin--BULKCOLLECT批量的执行;selectnum,val,'zidingyi'bulkcollectintotempChangefromtable......
  • 基于binlog+Canal+Redis 数据一致性
    基于binlog+Canal+Redis方案是一种解决分布式缓存和数据库之间数据一致性问题的方法,它通过MySQL的binlog和Canal机制,实现数据同步到Redis缓存,以保证数据一致性。   . MySQL主备复制原理 2.MySQL中binlog配置 3.Canal工作原理、安装、配置、使用 4.SpringBoot......
  • java代码实现自动生成数据库表er图
    最近有同事看到字节跳动产品设计文档里有数据库表er图。就想问问又没有现成的工具也给直接生成一个er图,经查找验证发现并没有。因为现在表关系都是用的逻辑外键而非物理外键约束的,所以像navicat等工具就算生成了也没有描述关系的连接线。那么为了满足需求,这边就略微出手写了个代码......
  • MongoDB - 理解业务场景、简介、特点和体系结构、数据类型等,部署Linux系统
    MongoDBNotesMongoDB用起来-快速上手理解MongoDB的业务场景、熟悉MongoDB的简介、特点和体系结构、数据类型等。能够在Windows和Linux下安装和启动MongoDB、图形化管理界面Compass的安装使用掌握MongoDB基本常用命令实现数据的CRUD掌握MongoDB的索引类型、索引管理、执行计......
  • ConcurrentHashMap
    ConcurrentHashMap1.8之前提供了⼀种粒度更细的加锁机制来实现在多线程下更⾼的性能,这种机制叫分段锁(LockStriping)。提供的优点是:在并发环境下将实现更⾼的吞吐量,⽽在单线程环境下只损失⾮常⼩的性能。可以这样理解分段锁,就是将数据分段,对每⼀段数据分配⼀把锁。当⼀个线程......