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;
}
}