`

java-增强for循环示例

    博客分类:
  • java
阅读更多
package cd.itcast.day1;

import java.util.ArrayList;

/**
 * 增强for循环 for..in 关注于数组/集合里面的元素
 * 
 * for(类型 变量名 : 数组/集合){ 变量名... } 增强for循环和普通循环的区别
 * 
 * @author Administrator
 * 
 */
public class AdvForeach{

	public static void main(String[] args) {
		String s= null;
		OrderItem item1 = new OrderItem(1l, 20d, 10);
		OrderItem item2 = new OrderItem(2l, 30d, 10);
//		Double total = count(.8, new OrderItem[] { item1, item2, item3 });
//		System.out.println(total);

		List orderItems = new ArrayList();
		orderItems.add(item1);
		orderItems.add(item2);
//		orderItems.add(item3);
		
		List newOrderItems=filter(30d,orderItems);
		System.out.println(newOrderItems);
		
//		total = count(.8, orderItems);
//		System.out.println(total);
//		
//		String ret = StringUtils.join(",", "1", "2", "3");
//		System.out.println(ret);
	}

	/**
	 * 在数组里面使用for..in 对于数组来说,其实仍然采用的是下标+对象
	 * 
	 * @param cutoff
	 * @param items
	 * @return
	 */
	private static Double count(Double cutoff, OrderItem... items) {
		Double total = 0d;
		for (OrderItem item : items) {
			total += item.getPrice() * item.getNum();
		}
		return total * cutoff;
	}

	/**
	 * 还能用在集合里面(所有实现了Iterable接口的类都可以使用for..in)
	 * 
	 * 对于实现了Iterable接口的实现类来说,其实采用的仍然是Iterator的遍历
	 * 
	 * 当我们理解了for..in对于Iterable的实现原理,有些操作就不能随便来了。
	 */
	private static Double count(double cutoff, List orderItems) {
		Double total = 0d;
		for (Object item : orderItems) {
			OrderItem temp = (OrderItem) item;
			total += temp.getPrice() * temp.getNum();
		}
		return total * cutoff;
	}

	/**
	 * 把低于给定价格的orderItem去掉
	 * 下面这种使用for..in的方法报错:java.util.ConcurrentModificationException(并发修改错误)
	 * 
	 * 迭代的原理:
	 * 如果使用增强for循环,不能在迭代当中使用集合本身的方法来修改集合,只能使用迭代器对应的方法.
	 * 但是有一个列外,如果集合只有两个元素,操作remove是允许的
	 * 
	 * @param price
	 * @param orderItems
	 * @return
	 */
	private static List filter(Double price, List orderItems) {
		for (Object object : orderItems) {
			OrderItem item = (OrderItem) object;
			if (item.getPrice() < price) {
				orderItems.remove(item);
			}
		}
//		for(Iterator it=orderItems.iterator();it.hasNext();){
//			OrderItem item = (OrderItem) it.next();
//			if (item.getPrice() < price) {
//				//只能使用跌带器提供的remove方法。
//				it.remove();
//			}
//		}
		return orderItems;
	}

}
分享到:
评论

相关推荐

    java for循环与增强for循环.docx

    例如,以下是一个简单的增强 for 循环示例: ```java public class Test { public static void main(String[] args) { int[] a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; for (int i : a) { System.out.print(i + " ...

    appengine-java-sdk-1.5.0.1.zip_JDK1.5.0.1_appengine-java-s_appen

    这是Oracle公司发布的Java平台标准版(Java SE)的一个版本,提供了许多改进和新特性,如泛型、枚举、注解和增强的for循环等。"appengine-java-s"可能是“appengine-java-sdk”的简写,再次强调了SDK的主题。"java_...

    JDK1.5中增强for循环

    #### 增强 for 循环示例 1. **遍历数组**: ```java int[] integers = {1, 2, 3, 4}; for (int i : integers) { System.out.println(i); // 依次输出 “1”、“2”、“3”、“4” } ``` 上述代码在编译期间会...

    learn-java-master_java_知识点_

    1. **基础语法**:Java的基础包括变量、数据类型(如整型、浮点型、字符型和布尔型)、运算符(算术、关系、逻辑等)、流程控制(if语句、switch语句、for循环、while循环)和数组。理解这些基本元素是编写Java代码...

    视频教程:Java中的For循环语句用法精讲.rar

    此外,Java还提供了增强型For循环,也称为foreach循环,特别适合遍历集合和数组: ```java for (int num : numbers) { System.out.println(num); } ``` 在这个视频教程中,你将学习如何使用For循环进行各种操作,...

    Java中使用增强for循环的实例方法

    Java中使用增强for循环的实例方法 Java语言中提供了多种循环语句,包括for循环、while循环、do-while循环等,其中增强for循环(也称为foreach循环)是一种特殊的for循环,用于遍历数组或集合中的元素。在本文中,...

    Java 零基础控制语句 - for 循环.md

    4. **灵活使用增强型 `for` 循环**:对于遍历数组或集合等数据结构,推荐使用增强型 `for` 循环(也称为 foreach 循环),因为它更简洁且易于阅读。 #### 总结 通过本文档的学习,初学者可以了解到 `for` 循环的...

    java-repl,Java的EVE打印循环.zip

    EVE可能代表"Example for Understanding"或者是项目中的一个特有术语,用来表示一个用于学习目的的示例。打印循环可能指的是通过循环结构输出一系列数据,帮助开发者理解和检查代码的运行过程。 虽然这个项目已被...

    java-examples:Java示例

    1. **基础语法**:这可能包括变量声明、数据类型(如整型、浮点型、字符串和布尔型)、运算符(算术、比较、逻辑等)、流程控制(if语句、switch语句、for循环、while循环和do-while循环)以及方法定义。 2. **类与...

    Java软件开发实战 Java基础与案例开发详解 4-5 增强for循环 共5页.pdf

    - **增强for循环**:一种简化数组遍历的方式,其语法为`for (type variableName : collectionVariableName) {...}`。例如: ```java int[] arr = {1, 2, 3, 4, 5}; for (int temp : arr) { System.out.println...

    java-util-iterator.pdf java-util-iterator.pdf

    自JDK1.5起,Java引入了增强型for循环,进一步简化了遍历集合的代码: ```java for (Type t : collection) { // 对t进行操作 } ``` 这里,`Type`是指具体的类型,如`String`。这种语法糖不仅使得代码更加简洁易读,...

    java循环结构

    例如,`Demo1.java`可能包含一个打印数字1到10的For循环示例: ```java for (int i = 1; i ; i++) { System.out.println(i); } ``` 2. **While循环**: While循环适用于循环次数未知,仅根据某个条件来决定...

    java-ex:Java代码示例

    1. **控制流程**:包括条件语句(if-else)、循环(for、while、do-while)以及switch-case结构,这些都是编写逻辑控制的关键。 2. **异常处理**:Java的异常处理机制使得程序能够优雅地处理错误,通过try-catch-...

    University-classic-java--program.rar_university

    Java的学习通常从基础开始,包括了解如何声明和使用变量、操作符、流程控制(如if语句、for循环、while循环)、函数的定义和调用。随着知识的深入,会接触到面向对象编程的核心概念,如封装、继承和多态。这些都体现...

    core-Java-volume1--example-code.rar_core java 1 code

    这包括数据类型(如基本类型和引用类型)、变量声明、运算符、流程控制(如if语句、switch语句、for循环和while循环)、以及方法的定义与调用。示例代码将展示如何正确地使用这些语法结构,帮助初学者理解和应用。 ...

    Java-Generics-and-Collections

    - **迭代**:使用`Iterator`或`for-each`循环遍历集合。 - **集合间的转换**:通过`Arrays.asList()`等方法将数组转换为集合,或将集合转换为数组。 ### 结论 《Java泛型与集合》这本书不仅涵盖了Java泛型的基本...

    Java循环语句之for共4页.pdf.zip

    一个简单的for循环示例是打印数字1到10: ```java for (int i = 1; i ; i++) { System.out.println(i); } ``` 在这个例子中,`i`初始化为1,条件是`i ,每次循环后`i`递增1。循环会一直执行,直到`i`不再小于或...

    Java循环技巧大全

    增强型For循环是Java 5引入的一种新的循环机制,用于简化对数组或集合的操作。例如: ```java String[] arr = new String[]{"a", "b", "c"}; for (String s : arr) { System.out.println(s); } ``` 这种循环结构...

    java代码-for循环注释

    文件`main.java`可能包含了使用`for`循环的Java代码示例,而`README.txt`可能是关于如何运行或理解该代码的说明。为了更具体地了解这些文件,你需要打开并查看它们的内容。在学习和使用`for`循环时,记得实践是关键...

    Java-for-ACO.rar_ACO_JAVA ACO_aco java_蚁群算法

    在"Java for ACO.txt"文件中,很可能是对算法原理的详细解释,或者包含具体代码示例和使用说明。为了深入理解并应用这个项目,你需要阅读该文本文件,理解其提供的指导和代码结构。通过实践这个项目,你可以增强自己...

Global site tag (gtag.js) - Google Analytics