通常當你實現一個通用的,你有一些你想要推廣的類型T
。我想寫一個概括HashSet<T>
的類。java泛型 - 如何實現一個需要HashSet的類<T>?
我想這寫下面的方式,但它不是正確的語法或也許它不支持:
public class PermutationHelper<T> implements Iterable<T> {
private HashSet<T> m_set;
private long numberOfPermutations;
private boolean includeEmptyPermutationAsOutput = false;
public PermutationHelper(HashSet<T> set) {
m_set = set;
numberOfPermutations = 2^set.size();
}
public void setIncludeEmptyPermutationAsOutput(boolean value) {
includeEmptyPermutationAsOutput = value;
}
@Override
public Iterator<T> iterator() {
Iterator<T> it = new Iterator<T>() {
long currentIndex = (includeEmptyPermutationAsOutput ? 0 : 1);
@Override
public boolean hasNext() {
return currentIndex < numberOfPermutations;
}
@Override
public T next() {
HashSet<T> result = new HashSet<T>();
return result; // expects T, but is a HashSet<T>..
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
};
return it;
}
}
我想迭代器給我傳入的HashSet<T>
的所有子集。
只要使用'T'作爲參數並在適當時參考'HashSet'?即是否有某種理由'助手'不適合你? –
Ryan
另外我希望你不打算命名你的班'助手'。 –
這是可能的,但取決於你想要實現的,還有其他選項 – emotionlessbananas