Java_循环
遍历数组:
一个栗子:
public class Test01 {
public static void main(String[] args) {
int[] aa = {19,92,12,03,45,22};
int[] bb = {19,90,03,25,25,48};
int[] cc = {10,10,06,10,01,02};
//普通for循环
for(int i=0;i<aa.length;i++){
System.out.println("数组aa :"+aa[i]);
}
//foreach循环
for(int j:bb){
System.out.println("数组bb :"+j);
}
//jdk自带方法
System.out.println(java.util.Arrays.toString(cc));
}
}
注意:foreach循环是jdk5之后出现的;
Arrays工具类中的toString()方法是将数组转换为字符串输出。
遍历集合:
1)遍历List集合:
一个栗子:
public class Test02 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
//普通for循环
for(int i=0;i<list.size();i++){
System.out.println("集合元素 :"+list.get(i));
}
//foreach
for(String s : list){
System.out.println("集合元素 :"+s);
}
//迭代器
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println("集合元素 :"+it.next());
}
}
}
2)遍历Map集合:
一个栗子:
public class Test03 {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"aaa");
map.put(2,"bbb");
map.put(3,"ccc");
//1、最常见最可取的遍历方法,适用于键值都需要的时候
for(Map.Entry<Integer, String> entry:map.entrySet()){
System.out.println("the key :"+entry.getKey()+"; the value :"+entry.getValue());
}
//2、循环遍历key或value,适用于只需要map中的key或value
for(Integer key:map.keySet()){
System.out.println("map 中的key :"+key);
}
for(String value:map.values()){
System.out.println("map 中的value:"+value);
}
//3、迭代器遍历
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, String> entry = it.next();
System.out.println("the key :"+entry.getKey()+"; the value :"+entry.getValue());
}
//4、遍历map中的value,但不能遍历key
for(String v : map.values()){
System.out.println("map 中的value:"+v);
}
}
}
注意:
关于迭代器遍历:虽然代码看起来冗余了一些,但迭代器遍历是老版本java中唯一遍历map的方式。而且有一个好处的是,你可以在遍历中调用iterator.remove()方法来删除这个元素。而其他方法不行,根据javadoc,如果在foreach循环中尝试使用此方法,结果是不可预测的。
关于通过键找值遍历:这种遍历方式是效率最低的一种,虽然代码看起来很清爽,所以还是尽量避免使用吧。
总结:
如果仅需要key或者value,那就使用方法2;如果你的java版本低于5,或者打算在遍历时删除元素,那就只能使用方法3;如果键值都要的话,使用方法1。
Java_循环的更多相关文章
- Java_循环结构
目录 while循环 do...while循环 for循环 for循环嵌套 增强for循环 打印三角形 Debug 视频 while循环 while(布尔表达式){ //循环内容 } //死循环 wh ...
- day05 Java_循环_基本类型数组
精华笔记: 循环结构: for结构:应用率高.与次数相关的循环 三种循环结构的选择规则: 先看循环是否与次数相关: 若相关----------------------------直接上for 若无关, ...
- java_增强for循环
增强for循环(foreach): 底层使用了迭代器,简化了迭代器的书写 JDK1.5新特性 所有的单列集合都可以使用增强for循环 for(集合/数组 的数据类型 变量名 : 集合名/数组名) pu ...
- day04 Java_分支_循环
精华笔记: Scanner接收用户输入的数据:共3步,不需要理解,先背下来 分支结构: if...else if结构:多条路 switch...case结构:多条路 优点:效率高.结构清晰 缺点:只能 ...
- Java_基础篇(数组排序)
Java_基础之数组排序(从小到大) 1.冒泡排序: 冒泡排序可以写成两层循环. 每次循环将最大的数值交换到数组的最后一个. 每排序完一次,后面就少比较一次.所以二层循环的判断条件写成:arry.le ...
- 【Java_基础】JVM内存模型与垃圾回收机制
1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. JVM内存模型如下图所示 1.1 程序计数器 程序计数器( ...
- Java_面试札记
Java_面试札记 为了不死,我愿献出生命 背景:记录下寄几和friend在2020年Java面试中遇到的problem. 1.MySQL索引结构? 基本上所有的索引都是B-Tree结构,还有一部分 ...
- 【.net 深呼吸】细说CodeDom(8):分支与循环
有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
随机推荐
- Day 18: 记filebeat内存泄漏问题分析及调优
ELK 从发布5.0之后加入了beats套件之后,就改名叫做elastic stack了.beats是一组轻量级的软件,给我们提供了简便,快捷的方式来实时收集.丰富更多的数据用以支撑我们的分析.但由于 ...
- Java中的String、StringBuilder以及StringBuffer
https://www.cnblogs.com/dolphin0520/p/3778589.html
- 分组PARTITION BY及游标CURSOR的用法
基础数据表: select * from dbo.RecommendationChanelVersionRelation: 数据如下: 要求按照ChannelVersionID分组,对每组中的Orde ...
- HDU-魔咒词典(字符串hash)
魔咒词典 TimeLimit: 8000/5000 MS (Java/Others) MemoryLimit: 32768/32768 K (Java/Others) 64-bit integer ...
- Go依赖模块版本之Module避坑使用详解
前提 对于Go的版本管理主要用过 glide,下面介绍 Go 1.11 之后官方支持的版本管理工具 mod. 关于 mod 官方给出了三个命令 go help mod.go help modules. ...
- javascript--实现几个简单的操作
利用JS实现几个简单的功能 --还有省市联动,商品的左右选择,表单的校验.但在学了jQuery之后,感觉这个没那么重要了,就不写了 表格的全选和全不选 表格的动态隔行换色 <!DOCTYPE h ...
- Thymleaf 从某处(不包含某处)开始截取字符串到末尾
简单描述:数据库存放的是id+name,但是做展示的时候,只需要展示name,不展示id.不管是在前台还是在后台,使用传统的方法截取,也是可以的,但是thymleaf提供了一种截取字符串,可以实现从某 ...
- Windows Internals 笔记——线程优先级
1.每个线程都被赋予0(最低)~31(最高)的优先级数.当系统确定给哪个线程分配CPU时,它会首先查看优先级为31的线程,并以循环的方式进行调度.如果有优先级为31的线程可供调度,那么系统就会将CPU ...
- swoole框架基本总结
框架-Swoole扩展-Swoole文档中心 http://wiki.swoole.com/wiki/page/p-framework.html swoole有两个部分. 一个是PHP扩展,用C开发的 ...
- So, How About UMD模块-Universal Module Definition
在ES6模块解决方案出现之前,工具库或包常用三种解决方案提供对外使用的接口,最早是直接暴露给全局变量,比如我们熟知的Jquery暴露的全局变量是$,Lodash对外暴露的全局变量是_,后来出现了AMD ...