以下是我的学习目标。我开始了,但我真的不知道从哪里开始实施主程序。我将不胜感激任何帮助!
目标:
为与Java API一致的类实现正确的方法,接口和扩展适当的类。
public class CardCollection {
private ArrayList<Card> cards;
private ArrayList<Note> notes;
public CardCollection() { //constructor initializes the two arraylists
cards = new ArrayList<Card>();
notes = new ArrayList<Note>();
}
private class Card implements Iterable<Card> { //create the inner class
public Iterator<Card> iterator() { //create the Iterator for Card
return cards.iterator();
}
}
private class Note implements Iterable<Note> { //create the inner class
public Iterator<Note> iterator() { //create the Iterator for Note
return notes.iterator();
}
}
public Card cards() {
return new Card();
}
public Note notes() {
return new Note();
}
public void add(Card card) {
cards.add(card);
}
public void add(Note note) {
notes.add(note);
}
}
答案 0 :(得分:2)
这里有两个概念,我认为你可能会混淆。如果可以迭代一些内部元素,则为Iterable对象。
因此,如果我有一个带有物品的购物车,我可以迭代我的杂货。
public class ShoppingCart implements Iterable<GroceryItem>
{
public Iterator<GroceryItem> iterator()
{
// return an iterator
}
}
因此,为了使用此功能,我需要提供一个Iterator。在您的代码示例中,您将重用ArrayList中的迭代器。从您的练习说明中,我相信您需要自己实施一个。例如:
public class GroceryIterator implements Iterator<GroceryItem>
{
private GroceryItem[] items;
private int currentElement = 0;
public GroceryIterator(GroceryItem[] items)
{
this.items = items;
}
public GroceryItem next() // implement this
public void remove() // implement this
public boolean hasNext() // implement this
}
所以我给你一个构造函数/成员变量的提示。在创建此类之后,您的Iterable类(我的ShoppingCart)将返回我的新迭代器。
作业建议为自定义迭代器使用私有内部类。
祝你好运答案 1 :(得分:1)