遍历数组:

一个栗子:

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. 清北学堂学习总结day2

    今天是钟皓曦大佬讲课,先来膜一波   %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a, ...

  2. Mac环境下Redis的安装

    1.下载 官网下载地址:https://redis.io/download,选择对应的下载版本,我下载的是4.0.12 2.安装 1)下载文件解压后复制到/usr/local/目录下(快速找到路径小技 ...

  3. go语言map操作

    package main import "fmt" func main() { var m = map[int]string{ 90: "优秀", 80: &q ...

  4. MongoDB数据库(一):基本操作

    1.NoSQL的概念 "NoSQL"一词最早于1998年被用于一个轻量级的关系数据库的名字 随着web2.0的快速发展,NoSQL概念在2009年被提了出来 NoSQL最常见的解释 ...

  5. git pull命令的用法

    git pull用法: git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并. 一句话总结git pull和git fetch的区别: git pull = git fet ...

  6. asp.net table/gridview 合并列

    public void MergeCell(TableRow trow) { TableCell currentCell = trow.Cells[0]; TableCell prevCell = n ...

  7. C# 操作docx文档

    一.需要引用DocX类库文件,可以直接在NuGet中找到. 二.创建文件,并添加一张表格 public static string fileName = AppDomain.CurrentDomain ...

  8. mysql 服务器负载过高的解决分析之路

    最近我们有台 mysql 服务器一直报负载过高,不停的收到阿里云的报警短信,让我很抓狂,登陆上服务器,看下一下,慢查询日志 发现有60多万的慢查询日志,一看这个就知道是搜索带来的,一直想把搜索的服务给 ...

  9. Cross-Origin Resource Sharing(CORS)详解,CORS详解,CORS原理分析

    Keywords CORS, 跨域,JS跨域调用,Ajax CORS 跨域,跨域详解,CORS跨域原理 Cross-Origin Resource Sharing详解 Cross-Origin Res ...

  10. Flink写入kafka时,只写入kafka的部分Partitioner,无法写所有的Partitioner问题

    1. 写在前面 在利用flink实时计算的时候,往往会从kafka读取数据写入数据到kafka,但会发现当kafka多个Partitioner时,特别在P量级数据为了kafka的性能kafka的节点有 ...