Java 遍历list和map的方法
作者:zsq_fengchen 发布时间:2023-02-06 22:23:40
标签:java,遍历,list,map
java 遍历list
package com.tiandy.core.rest;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* List 集合的循环遍历
* @data 2020.12.12
*
*/
public class TestList {
public static void main(String[] args) {
// 循环遍历List的4中方法
List<String> strList = new ArrayList<>();
strList.add("aaa");
strList.add("bbb");
strList.add("ccc");
// 第一种: 普通for循环遍历方式 (好处是可以选择下标)
for (int i = 0; i < strList.size(); i++) {
System.out.println(strList.get(i));
}
// 第二种: 增强的for循环
for (String str : strList) {
System.out.println(str);
}
// 第三种: 使用Iterator迭代器
Iterator<String> it = strList.iterator();
while (it.hasNext()) {
String str = (String) it.next();
System.out.println(str);
}
// 第四种: java8 Lambda方式(箭头函数)
// strList.forEach(System.out::println); //和下面的写法等价(当后边只有一行内容是可以简写)
strList.forEach(str -> {
System.out.println(str);
});
}
}
如果想要在循环的过程中国,使用下标,推荐第一种方式方式;
如果需要曾强for循环,可以直接使用对象,推荐使用第二种方式;
如果需要在遍历过程中删除元素推荐第三种使用Iterator;
如果是JDK1.8以上版本,追求效果简洁,可以使用第四种方式使用forEach箭头函数。
Java遍历map
package cn.jdbc.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* Map 集合的循环遍历
* @data 2020.11.12
*
*/
public class TestMap {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("aaa", 111);
map.put("bbb", 222);
map.put("ccc", 333); // 第一种: 通过keySet的方式
System.out.println("第1种:通过Map.keySet()遍历key和value:");
for(String key:map.keySet()){//keySet获取map集合key的集合 然后在遍历key获取value即可
String value = map.get(key).toString();//
System.out.println("key:"+key+" vlaue:"+value);
}
// 第二种:通过迭代器的方式
System.out.println("第2种:通过Map.entrySet使用iterator遍历key和value:");
Iterator<Entry<String, Object>> it = map.entrySet().iterator();
while(it.hasNext()){
Entry<String, Object> entry = it.next();
System.out.println("key:"+entry.getKey()+" key:"+entry.getValue());
}
// 第三种:尤其是容量大时,推荐
System.out.println("第3种:通过Map.entrySet遍历key和value");
for (Map.Entry<String, Object> m : map.entrySet()) {
System.out.println("key:" + m.getKey() + " value:" + m.getValue());
}
// 第四种:只需要获取value时使用
System.out.println("第4种:通过Map.values()遍历所有的value,但不能遍历key");
for(Object m:map.values()){
System.out.println(m);
}
}
}
如果只是获取key,或者value,推荐使用keySet或者values方式;
如果同时需要key和value推荐使用entrySet;
如果需要在遍历过程中删除元素推荐使用Iterator;
如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中。
来源:https://www.cnblogs.com/zhaosq/p/14103059.html


猜你喜欢
- 简述mysq5.7之后新增了json类型,但是在使用的过程中,Json数组中的值小于Integer.MAX_VALUE,则反序列化时会转成L
- 前言定时器线程池提供了定时执行任务的能力,即可以延迟执行,可以周期性执行。但定时器线程池也还是线程池,最底层实现还是ThreadPoolEx
- 本文实例为大家分享了unity绘制一条流动弧线的具体代码,供大家参考,具体内容如下最终效果把下面脚本复制,直接拖上脚本,设置两个点(物体)的
- 在value目录下,创建styles.xml文件<?xml version="1.0" encoding=&quo
- C#开发WinForm,如何实现TextBox获取输入焦点时自动全选?&nbs
- 使用Java实现图像分割,供大家参考,具体内容如下为减少动画制作过程中的IO操作,我们可以使用连续动画来改善动画播放效率。假如我们有如下的一
- 前提:已经配置Zuul网关参考:https://www.jb51.net/article/182894.htm限流方式:1)nginx层限流
- 先贴代码,后面做一些简单说明:public static string sendPostHttpRequest_2(string url,
- 1.在外部开启activity时需要新开一个task,从service里开启activity时出现了这个异常。W/System.err: a
- 一、问题场景使用Logger.error方法时只能打印出异常类型,无法打印出详细的堆栈信息,使得定位问题变得困难和不方便。二、先放出结论Lo
- ⛳️ 基本类型做形式参数(零散参数的数据接收)1、基本数据类型要求前台页面的表单输入框的name属性值与对应控制器方法中的形式参数名称与类型
- 前言先放一个官网吧,其实本案例就是根据官网案例来的,只是进行了修改配置。Mybatis-plus官网一、搭建一个springboot项目&n
- 本文实例讲述了C#队列Queue多线程用法。分享给大家供大家参考。具体分析如下:这里展示一个例子,供学习使用:private void bu
- 警告消息框主要是用来向用户户展示诸如警告、异常、完成和提示消息。一般实现的效果就是从系统窗口右下角弹出,然后加上些简单的显示和消失的动画。创
- 目前地图开放平台三大巨头:高德、百度、腾讯基本都支持Flutter插件开发集成。从这里也能看出Flutter的生态在逐渐的完善。下面介绍下在
- 本文以实例形式详细讲述了Java的反射机制,是Java程序设计中重要的技巧。分享给大家供大家参考。具体分析如下:首先,Reflection是
- 引入依赖 <dependency> <g
- 本文实例为大家分享了Android创建可拖动图片控件的具体代码,供大家参考,具体内容如下重载、自绘1、从View派生一个控件类 ,构造函数中
- 前言:回顾之前的微信公众号配置和消息处理的内容,我们已经掌握了如何配置服务器与微信公众号建立连接,也掌握了通过消息管理的方式,对用户的信息进
- 一、List<T>对象中的T是值类型的情况(int 类型等)对于值类型的List直接用以下方法就可以复制:List<T&g