package iterator;
/**
*
* @ClassName: Item
* @Description: 订单项
* @author minjun
*
*/
public class Item {
/**商品名称*/
private String name;
/**价格*/
private double price;
/**描述*/
private String desc;
/**数量*/
private int count;
public Item(String name, double price, String desc, int count) {
this.name = name;
this.price = price;
this.desc = desc;
this.count = count;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
@Override
public String toString() {
return "Item [name=" + name + ", price=" + price + ", desc=" + desc
+ ", count=" + count + "]";
}
}
package iterator;
import org.junit.Test;
public class TestCase {
@Test
public void test() {
Order o =
new TBOrder();//淘宝的订单
// new JDOrder();//京东的订单
printOrder(o);//打印订单
}
/**打印订单 */
private void printOrder(Order o) {
for (Item item : o) {
System.out.println(item);
}
}
}
/*
* %W% %E%
*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package java.lang;
import java.util.Iterator;
/** Implementing this interface allows an object to be the target of
* the "foreach" statement.
* @since 1.5
*/
public interface Iterable<T> {
/**
* Returns an iterator over a set of elements of type T.
*
* @return an Iterator.
*/
Iterator<T> iterator();
}
package iterator;
public interface Order extends Iterable<Item>{
}
package iterator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
*
* @ClassName: JDOrder
* @Description: 京东订单
* @author minjun
*
*/
public class JDOrder implements Order {
/** 京东用集合装订单项 */
private List<Item> list = new ArrayList<Item>();
public JDOrder() {
add("iphone6", 5000.00, "一部手机", 2);
add("mbp", 16000.00, "一台电脑", 1);
add("西门子洗衣机", 3000.00, "一台洗衣机", 3);
}
/** 添加订单条目 */
public void add(String name, double price, String desc, int count) {
list.add(new Item(name, price, desc, count));
}
@Override
public Iterator<Item> iterator() {
return new MyIterator();
}
private class MyIterator implements Iterator<Item> {
private Iterator<Item> it = list.iterator();
@Override
public boolean hasNext() {
return it.hasNext();
}
@Override
public Item next() {
return it.next();
}
@Override
public void remove() {
throw new UnsupportedOperationException("目前不支持删除操作");
}
}
}
package iterator;
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
*
* @ClassName: TBOrder
* @Description: 淘宝订单
* @author minjun
*
*/
public class TBOrder implements Order{
private int size=3;
private Item[] orders=new Item[size];
private int index=0;
public TBOrder(){
add("天猫1", 1111, "天猫活动1", 1);
add("天猫2", 1111, "天猫活动1", 1);
add("天猫3", 1111, "天猫活动1", 1);
add("天猫4", 1111, "天猫活动1", 1);
add("天猫5", 1111, "天猫活动1", 1);
add("天猫6", 1111, "天猫活动1", 1);
add("天猫7", 1111, "天猫活动1", 1);
add("天猫8", 1111, "天猫活动1", 1);
}
/**添加订单条目*/
public void add(String name, double price, String desc, int count) {
//如果超过数组大小,就扩容
if(index>=size-1){
resize();
}
orders[index++]=new Item(name, price, desc, count);
}
/**扩容*/
private void resize() {
size=size<<1;//移位运算符--相当于size=size*2
Item[] newItems=new Item[size];
//将原始数组内容拷贝到新数组中去
for(int i=0;i<orders.length;i++){
newItems[i]=orders[i];
}
orders=newItems;
}
@Override
public Iterator<Item> iterator() {
return new MyIterator();
}
private class MyIterator implements Iterator<Item>{
private int curr=0;
@Override
public boolean hasNext() {
return orders[curr]!=null;
}
@Override
public Item next() {
if(hasNext()){
return orders[curr++];
}else{
throw new NoSuchElementException("没有这个元素");
}
}
@Override
public void remove() {
throw new UnsupportedOperationException("目前不支持删除操作");
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有