java-增强for循环示例

来源:互联网 发布:阿里云校园 编辑:程序博客网 时间:2024/06/05 18:09
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;}}
原创粉丝点击