import java.util.HashMap;
import java.util.Iterator;
import java.util.List;/*时代Java公众号 - nowjava.com 提 供*/
import java.util.Map;
public class Main implements Iterable<Stock> {
Map<String, Stock> portfolio = new HashMap<>();
public void add(Stock stock) {
portfolio.put(stock.getSymbol(), stock);
}
public void add(List<Stock> stocks) {
for (Stock s : stocks) {
portfolio.put(s.getSymbol(), s);
}
}
@Override
/*
来自
*时 代 Java - nowjava.com*/
public Iterator<Stock> iterator() {
return portfolio.values().iterator();
}
public static void main(String[] args) {
Main myPortfolio = new Main();
myPortfolio.add(new Stock("ORCL", "Oracle", 5010.0));
myPortfolio.add(new Stock("AAPL", "Apple", 2010.0));
myPortfolio.add(new Stock("GOOG", "Google", 1100.0));
myPortfolio.add(new Stock("IBM", "IBM", 510.0));
myPortfolio.add(new Stock("MCD", "McDonalds", 3010.0));
System.out.println("legacy for-each loop");
for (Stock stock : myPortfolio) {
System.out.println(stock);
}
System.out.println("using Java 8 foreach implementation");
myPortfolio.forEach(s -> System.out.println(s));
}
}
class UnmodifiableIterator {
public static <E> Iterator<E> wrap(final Iterator<E> iter) {
return new Iterator<E>() {
@Override
public boolean hasNext() {
return iter.hasNext();
}
@Override
public E next() {
return iter.next();
}
@Override
public void remove() {
throw new UnsupportedOperationException("Remove not supported.");
}
};
}
}
class Stock {
private String symbol;
private String name;
private double shares;
public Stock(String symbol, String name, double shares) {
this.symbol = symbol;
/**代码未完, 请加载全部代码(NowJava.com).**/
本文系作者在时代Java发表,未经许可,不得转载。如有侵权,请联系nowjava@qq.com删除。