java for 和foreach_关于java中for和foreach循环

for循环中的循环条件中的变量只求一次值!具体看最后的图片

foreach语句是java5新增,在遍历数组、集合的时候,foreach拥有不错的性能。

foreach是for语句的简化,但是foreach并不能替代for循环。可以这么说,任何foreach都能改写为for循环,但是反之则行不通。

foreach不是java中的关键字。foreach的循环对象一般是一个集合,List、ArrayList、LinkedList、Vector、数组等。

foreach的格式:

for(元素类型T 每次循环元素的名称O : 循环对象){

//对O进行操作

}

一、常见使用方式。

foreach遍历数组。961ddebeb323a10fe0623af514929fc1.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/**

* 描述:

* Created by ascend on 2016/7/8.

*/

public class Client {

public static void main(String[] args) {

String[] names = {"beibei", "jingjing"};

for (String name : names) {

System.out.println(name);

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

foreach遍历List。961ddebeb323a10fe0623af514929fc1.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/**

* 描述:

* Created by ascend on 2016/7/8.

*/

public class Client {

public static void main(String[] args) {

List list = new ArrayList();

list.add("a");

list.add("b");

list.add("c");

for(String str : list){

System.out.println(str);

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

二、局限性。

foreach虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改,而for循环可以在遍历的过程中对源数组或者集合进行修改。

数组961ddebeb323a10fe0623af514929fc1.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/**

* 描述:

* Created by ascend on 2016/7/8.

*/

public class Client {

public static void main(String[] args) {

String[] names = {"beibei", "jingjing"};

for (String name : names) {

name = "huanhuan";

}

//foreach

System.out.println("foreach:"+Arrays.toString(names));

//for

for (int i = 0; i < names.length; i++) {

names[i] = "huanhuan";

}

System.out.println("for:"+Arrays.toString(names));

}

}

输出:

foreach:[beibei, jingjing]

for:[huanhuan, huanhuan]

48304ba5e6f9fe08f3fa1abda7d326ab.png

集合961ddebeb323a10fe0623af514929fc1.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

/**

* 描述:

* Created by ascend on 2016/7/8.

*/

public class Client {

public static void main(String[] args) {

List names = new ArrayList();

names.add("beibei");

names.add("jingjing");

//foreach

for(String name:names){

name = "huanhuan";

}

System.out.println(Arrays.toString(names.toArray()));

//for

for (int i = 0; i < names.size(); i++) {

names.set(i,"huanhuan");

}

System.out.println(Arrays.toString(names.toArray()));

}

}

输出:

[beibei, jingjing]

[huanhuan, huanhuan]

48304ba5e6f9fe08f3fa1abda7d326ab.png

特别注意的地方!!

a9b68c5f447c68df0b4b9b47f0eee011.png

原创:http://www.cnblogs.com/adeng/p/5681713.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将datatable导出为excel的三种方式(转)

一、使用Microsoft.Office.Interop.Excel.DLL 需要安装Office 代码如下&#xff1a; 2 publicstaticboolExportExcel(System.Data.DataTable dt, stringpath)3 {4 boolsucceed false;5 if(dt !null)6 {7 Microsoft.Office.Interop.Excel.Application xlApp null;8 try9 {10 xl…

bae java上传图片_干货分享:gradle+svn轻松搞定BAE java代码上传

背景在BAE基础版和专业版上&#xff0c;java应用通过war包文件部署的时候&#xff0c;总会遇到一些小麻烦&#xff1a;BAE专业版的svn/git有单文件40M的限制&#xff0c;所以在专业版的svn/git中上传超过40M的war包(很多war包都会超过40M)是不可行的BAE基础版的svn/git&#xf…

java缺省包详解_Java在其它包中无法引用缺省包中的类

1、现象1.1 问题场景最近&#xff0c;在写测试代码时&#xff0c;将一个类(这里暂且称为ClassA)放在在缺省包中&#xff0c;也就是说&#xff0c;直接放在了src目录下&#xff0c;没有创建包。然后&#xff0c;将这个类打入了jar文件&#xff0c;提供给另外的工程(这里称为Proj…

myeclipse开发代码颜色搭配保护视力

废话不多说&#xff0c;这个东西主要是为了保护视力的&#xff0c;另外我也挺喜欢上边的颜色搭配的&#xff0c;今天特拿出来分享。直接上图 转载于:https://www.cnblogs.com/suncoolcat/p/3293895.html

linux下qt5静态编译器_笔记-linux下Qt5.3.2 静态编译

这里主要讲linux下的编译&#xff0c;windows下面比较简单依赖sudo apt-get install"^libxcb.*"libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev编译选项configure -confirm-license -opensource -static -release -no-qml-debug -qt-freetype -qt-xcb -n…

猜字小游戏java方法体_java实现猜字小游戏

闲来无事&#xff0c;实现一个猜数字的小游戏&#xff0c;目的是巩固自己的基础知识&#xff0c;培养敲代码的乐趣。首先在项目中所创建的类中导包(视频教程推荐&#xff1a;java课程)import java.util.Scanner;//一个简单的文本扫描器&#xff0c;可以使用正则表达式解析原始类…

Aixs2发布webservice服务

http://www.blogjava.net/pzxsheng/archive/2012/12/21/393319.html 开发前准备&#xff1a; 1、Eclipse Java EE IDE&#xff08;Juno Service Release 1&#xff09;&#xff0c;这个必须是for J2EE 的IDE&#xff0c;因为发布webservice的插件所需。 下载地址&…

快照java开源_maven快照版本和发布版本

在使用maven过程中&#xff0c;我们在开发阶段经常性的会有很多公共库处于不稳定状态&#xff0c;随时需要修改并发布&#xff0c;可能一天就要发布一次&#xff0c;遇到bug时&#xff0c;甚至一天要发布N次。我们知道&#xff0c;maven的依赖管理是基于版本管理的&#xff0c;…

java里的sleuth_java基础之spring cloud微服务快速教程之(十一) Sleuth(zipkin) 服务链路追踪...

0、前言微服务架构上众多微服务通过REST调用&#xff0c;可能需要很多个服务协同才能完成一个接口功能&#xff0c;如果链路上任何一个服务出现问题或者网络超时&#xff0c;都会形成导致接口调用失败。随着业务的不断扩张&#xff0c;服务之间互相调用会越来越复杂。如何清晰地…

opengl模板缓冲区

相信大家有些人对opengl的模板缓冲区不是很理解&#xff0c;包括我最开始也是&#xff0c;opengl的模板缓冲区其实就是采用过滤的技术来控制那些颜色可以绘制&#xff0c;那些不能进行绘制。这里的过滤技术也就是我们的一个控制方法&#xff0c;主要体现在如下两个函数glStenci…

vue在java中的应用_开发知识-Vue篇:在Vue应用中集成O2OA

在前面的章节中&#xff0c;我们介绍了两种在O2OA中使用Vue开发应用的方式&#xff0c;已经可以满足绝大多数的情况了。如果您考虑完全脱离O2的web服务器&#xff0c;自己搭建web服务器&#xff0c;那就请阅读本章。我们还是使用Vue的Vue-CLI工具&#xff0c;创建Vue应用&#…

C++ 虚函数在基类与派生类对象间的表现及其分析

近来看了侯捷的《深入浅出MFC》&#xff0c;读到C重要性质中的虚函数与多态那部分内容时&#xff0c;顿时有了疑惑。因为书中说了这么一句&#xff1a;使用“基类之指针”指向“派生类之对象”&#xff0c;由该指针只能调用基类所定义的函数&#xff0c;如果要让基类的指针使用…

php评论盖楼怎么实现,dedecms评论盖楼实现楼层数,类似腾讯、网易的评论(5.5/5.6版)...

DEDE评论效果&#xff1a;修改后的效果&#xff1a;修改步骤一、织梦dedecms5.5版本(5.6版本请往下看)1、修改/plus/feedback_ajax.php文件的第131行(如果你没改过)下面是修改之前的代码&#xff1a;$qmsg {quote}{title}.$row[username]. 的原帖&#xff1a;{/title}{content…

datagridview绑定与详细说明 (搜集)

1、实现一个用于处理数据库教程数据检索的详细信息的方法。 下面的代码示例实现一个 getdata 方法&#xff0c;该方法对一个 sqldataadapter 组件进行初始化&#xff0c;并使用该组件填充 datatable。 然后&#xff0c;将 datatable 绑定到 bindingsource 组件。请确保将 conne…