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 ...
随机推荐
- Python学习系列(五)(文件操作及其字典)
Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...
- bzoj 4278 [ONTAK2015]Tasowanie——后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4278 因为每次要放后缀较小的那个,所以把两个序列放在一起排序吧.改一改模板. 其实要改的地方 ...
- BZOJ1355:[Baltic2009]Radio Transmission
浅谈\(KMP\):https://www.cnblogs.com/AKMer/p/10438148.html 题目传送门:https://lydsy.com/JudgeOnline/problem. ...
- heartbeat测试
节点名: node-master 192.168.1.77 node-slave 192.168.1.88 VIP 192.168.1.234 带下划线的不允许作为节点名 修改节点名字 gvim /e ...
- laravel查看sql语句
我自己是用第一种方法来调试的,第三种不行 不知道为啥 laravel查看sql语句 方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 ...
- FIR滤波器和IIR滤波器的区别
数字滤波器广泛应用于硬件电路设计,在离散系统中尤为常见,一般可以分为FIR滤波器和IIR滤波器,那么他们有什么区别和联系呢. FIR滤波器 定义: FIR滤波器是有限长单位冲激响应滤波器,又称为非递归 ...
- sed命令常见用法
sed -n 'num1p' file 选出行号为num1的行sed -n 'num1,num2p' file 选出num1~num2行sed -n 'num1,$p' file 选出num1行到文件 ...
- java代码从键盘输入次数,然后进行运算-----菜鸟如此菜
package com.aaa; import java.util.Scanner; // //求两数相加的和.从键盘输入 public class ftwert { public static vo ...
- spring-session之一:简介、使用及实现原理
一.背景 http session(企业)一直都是我们做集群时需要解决的一个难题,我们知道HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的.而如 ...
- HDU 3018 Ant Trip(欧拉回路,要几笔)
Ant Trip Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...