public interface IPowerList<T> extends Iterable< T > {
public int bitFlag(List<T> subseq);
}
public class PowerList<T> implements IPowerList<T>{
private List<T> originalList;
private Set<Set<T>> powerList= new HashSet<Set<T>>();
@Override
public Iterator<T> iterator() {
// TODO Auto-generated method stub
return null;
}
@Override
public int bitFlag(List<T> subseq) {
// TODO Auto-generated method stub
return 0;
}
}
自動的に、Eclipse からオーバーライド メソッドを実装するように指示されましたiterator
。
(1) iterableから拡張したインターフェースを実装しているからでしょうか?
(2) 私のプライベート変数はセットとリストです。それらには独自の反復子があり、新しい反復子を定義する必要はありません。どうすればよいですか? 継承を削除する必要がありますか?
(3) 新しい反復子を定義する必要があるのはいつですか? ある種のコレクションであるクラスを定義するときは? しかし、私たちは常に独自のイテレータを持つジェネリックコレクションを使用しているため、なぜだろうか..例を挙げてもらえますか?
(4) セットのセットに追加した場合new HashSet<T>()
、空リストの追加と見なされますか、または追加new HashSet().add(null)
は空のリストと見なされますか?