Java 5新特性 for each 和Iterator的选择
在使用一边做迭代操作一边做删除数组元素操作是应该使用Iterator

package for_each_And_Iterator;
public class Commodity {
private String goods;
private double price;
private int num;
public Commodity(String goods, double price, int num) {
this.goods = goods;
this.price = price;
this.num = num;
}
public String getGoods() {
return goods;
}
public double getPrice() {
return price;
}
public int getNum() {
return num;
}
public String toString() {
return "Commodity [goods=" + goods + ", price=" + price + ", num=" + num + "]";
}
}
package for_each_And_Iterator; import java.util.ArrayList;
import java.util.List; public class For_eachDemo {
public static double sum() {
//创建三个商品对象
Commodity cy1 = new Commodity("phone", 1000.0, 5);
Commodity cy2 = new Commodity("computer", 3000.0, 12);
Commodity cy3 = new Commodity("headset", 15.0, 30);
List<Commodity> list = new ArrayList<Commodity>();
list.add(cy1);
list.add(cy2);
list.add(cy3);
double coy = 0.0;
for (Commodity index : list) {
// if(index.getPrice()<1000){
// //并发修改异常
// list.remove(index);//Exception in thread "main" java.util.ConcurrentModificationException
// System.out.println(list);
// }
coy += (index.getPrice() * index.getNum());
}
return coy;
}
public static void main(String[] args) {
System.out.println(sum());
}
}
package for_each_And_Iterator; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class IteratorDemo {
//获取商品单价小于1000的商品
public static double sum() {
//创建三个商品对象
Commodity cy1 = new Commodity("phone", 1000.0, 5);
Commodity cy2 = new Commodity("computer", 3000.0, 12);
Commodity cy3 = new Commodity("headset", 15.0, 30);
List<Commodity> list = new ArrayList<Commodity>();
list.add(cy1);
list.add(cy2);
list.add(cy3);
double coy = 0.0;
for (Iterator<Commodity> it = list.iterator(); it.hasNext();) {
Commodity comy = it.next();
if (comy.getPrice() < 1000) {
it.remove();//Iterator的.remove();
}
}
for (Commodity commodity : list) {
coy += commodity.getPrice() * commodity.getNum();
System.out.println(commodity);
}
return coy;
} public static void main(String[] args) {
System.out.println(sum());
}
}

Java 5新特性 for each 和Iterator的选择的更多相关文章
- Java 8 新特性——Lambdas 表达式
本文内容 引入 测试数据 collect(toList()) map filter flatMap max 和 min reduce 整合操作 参考资料 Java 8 对核心类库的改进主要包括集合类的 ...
- Java 8 新特性-Stream更优雅的处理集合入门
Java 8 新特性之--Stream 一. 简单介绍 Stream是Java 8提出了的一种新的对集合对象功能的增强.它集合Lambda表达式,对集合提供了一些非常便利,高效的操作,使得代码具有非常 ...
- Java 8 新特性之 Stream 流基础体验
Java 8 新特性之 Stream 流基础体验 package com.company; import java.util.ArrayList; import java.util.List; imp ...
- IBM Developer:Java 9 新特性概述
Author: 成富 Date: Dec 28, 2017 Category: IBM-Developer (20) Tags: Java (27) 原文地址:https://www.ibm.com/ ...
- Java 8 新特性——检视阅读
Java 8 新特性--检视阅读 参考 Java 8 新特性--菜鸟 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的 ...
- Java 8 新特性——实践篇
Java 8 新特性--实践篇 参考 Java8新特性 重要更新:Lambda 表达式和Stream API Lambda 表达式 Lambda 表达式引入之前: 举个场景例子:当我们要对一个班级里的 ...
- JAVA 8 新特性实用总JAVA 8 新特性实用总结结
JAVA 8 新特性实用总结 作为一个工作两年多的 老 程序猿,虽然一开始就使用 jdk1.8 作为学习和使用的版本,随着技术的迭代,现有的 JDK 版本从两年前到现在,已经飞速发展到了 JDK 15 ...
- Java 8新特性-4 方法引用
对于引用来说我们一般都是用在对象,而对象引用的特点是:不同的引用对象可以操作同一块内容! Java 8的方法引用定义了四种格式: 引用静态方法 ClassName :: staticMetho ...
- Spring 4支持的Java 8新特性一览
有众多新特性和函数库的Java 8发布之后,Spring 4.x已经支持其中的大部分.有些Java 8的新特性对Spring无影响,可以直接使用,但另有些新特性需要Spring的支持.本文将带您浏览S ...
随机推荐
- List<Map> 排序
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...
- 在 windows7 中使用 vs2003 时,“在文件中查找”导致无响应的问题
解决 Win7 32bit/64bit环境下,在使用VS2003的查找功能时,会导致VS2003无响应. 解决方法:找到VS2003的安装目录,修改"...\Microsoft Visual ...
- 【转】使用Jmeter对Websocket进行压力测试
前段时间本着练习angularJS+requireJS的目的写了一个基于nodeJS和socket.io的聊天室,github地址为:https://github.com/towersxu/node- ...
- appium 中swipe()方法向左滑动时
应该在UI Automator Viewer中读取到的例如ImageView [180,600][900,1320],如果要左滑,代码中应该是写为driver.swipe(900,1320,180,6 ...
- 有趣的java小项目------猜拳游戏
package com.aaa; //总结:猜拳游戏主要掌握3个方面:1.人出的动作是从键盘输入的(System.in)2.电脑是随机出的(Random随机数)3.双方都要出(条件判断) import ...
- 复制书稿(book) (二分,贪心+dp)
复制书稿(book) 时间限制: 1 Sec 内存限制: 128 MB提交: 3 解决: 1[提交][状态][讨论版][命题人:quanxing] 题目描述 现在要把m本有顺序的书分给k个人复制( ...
- 表空间 -- tablespace
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表, 所以称作表空间. Oracle数据库中至少存在一个表空间,即SYSTEM的表空间. ...
- PHP面向对象深入研究之【命名空间】与【自动加载类】
命名空间 避免类名重复,而产生错误. <?php require_once "useful/Outputter.php"; class Outputter { // outp ...
- Models-详细操作
# 单表简单查询13种方法 1.all(): 查询所有结果 all: models.表名.objects.all() book_all=models.Book.objects.all() # 结果是q ...
- shell命令getopts
#!/bin/bash set -e cmd="ls" while getopts :a:t:sn opt; do case $opt in a) cmd=$cmd" - ...