遍历数组:

一个栗子:

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_循环的更多相关文章

  1. Java_循环结构

    目录 while循环 do...while循环 for循环 for循环嵌套 增强for循环 打印三角形 Debug 视频 while循环 while(布尔表达式){ //循环内容 } //死循环 wh ...

  2. day05 Java_循环_基本类型数组

    精华笔记: 循环结构: for结构:应用率高.与次数相关的循环 三种循环结构的选择规则: 先看循环是否与次数相关: 若相关----------------------------直接上for 若无关, ...

  3. java_增强for循环

    增强for循环(foreach): 底层使用了迭代器,简化了迭代器的书写 JDK1.5新特性 所有的单列集合都可以使用增强for循环 for(集合/数组 的数据类型 变量名 : 集合名/数组名) pu ...

  4. day04 Java_分支_循环

    精华笔记: Scanner接收用户输入的数据:共3步,不需要理解,先背下来 分支结构: if...else if结构:多条路 switch...case结构:多条路 优点:效率高.结构清晰 缺点:只能 ...

  5. Java_基础篇(数组排序)

    Java_基础之数组排序(从小到大) 1.冒泡排序: 冒泡排序可以写成两层循环. 每次循环将最大的数值交换到数组的最后一个. 每排序完一次,后面就少比较一次.所以二层循环的判断条件写成:arry.le ...

  6. 【Java_基础】JVM内存模型与垃圾回收机制

    1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. JVM内存模型如下图所示 1.1 程序计数器 程序计数器( ...

  7. Java_面试札记

    Java_面试札记  为了不死,我愿献出生命 背景:记录下寄几和friend在2020年Java面试中遇到的problem. 1.MySQL索引结构? 基本上所有的索引都是B-Tree结构,还有一部分 ...

  8. 【.net 深呼吸】细说CodeDom(8):分支与循环

    有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...

  9. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

随机推荐

  1. kali下的webshell工具-Weevely

    Weevely ------------------------------------------------ 主要特点: ·         隐蔽的类终端的PHP webshell ·       ...

  2. L2-013 红色警报 (25 分) (并查集)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805063963230208 题目: 战争中保持各个城市间的连通性非 ...

  3. 0ctf 2019 zero_task

    一个条件竞争的洞,以前没有接触过.比赛完研究了wp复现下. new_thread结构体如下 new_thread: thread_area size0x8 thread_area+0x8 size 0 ...

  4. 关于because the weaver option '-Xset:weaveJavaxPackages=true' has not been specified报错的解决方案

    我是采用代理模式的aspectj <plugin> <groupId>org.apache.maven.plugins</groupId> <artifact ...

  5. PHP提取页面第一张图为缩略图的代码

    <?php $p = '/<img.*?src=[\'|\"](.+?)[\'|\"].*?>/i'; preg_match_all($p,$str,$match ...

  6. c#解决浏览器跨域问题

    1.浏览器为什么不能跨域? 浏览器有一个基本的安全策略--同源策略.为保证用户的信息安全,它对不同源的文档或脚本对当前文档的读写操作做了限制.域名,子域名,端口号或协议不同都属于不同源,当脚本被认为是 ...

  7. Flask+SQLAlchemy+alembic+Flask-RESTful使用

    前言 其实准备把这篇删掉,先写Flask-restful相关的,后来想想大体框架还是先写出来,这两天踩了很多坑,有的谷歌也没有答案.一直摸索也总算是开始了. 正文 SQLAlchemy/alembic ...

  8. Django-视图层(view)

    视图层(view) ​ 视图函数,简称视图,本质上是一个简单的Python函数,它接受Web请求并且返回Web响应.响应的内容可以是HTML网页,重定向,404错误,图片等任何东西,但本质是返回响应对 ...

  9. String,下表和切片,分割

    字符串介绍 1.字符串在内存中的存储 2.字符串的加法 3.字符串的格式化 1. 下标索引 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间 字符串中" ...

  10. No grammar constraints (DTD or XML Schema) referenced in the document.

    问题描述 web.xml 使用 Servlet4.0 版本,No grammar constraints (DTD or XML Schema) referenced in the document. ...