好吧,我在Java中製作了一個動態的2D數組,它實現了java.util.Collection接口。我讓我的數組實現它,因爲我希望它具有與正常的Collection
相同的功能。但是,我不能實現size()
方法,因爲在接口中它返回一個整數,並且2D矩陣可能會溢出一個整數類型。動態二維數組可以實現Java.Collection.size()方法嗎?
這是我班的一個片段,我試圖讓:
public abstract class AbstractMatrix<E> implements Collection<E>{
@Override
public long size() {
return columns * rows;
}
}
現在,這是行不通的,因爲「返回類型是Collection<E>.size()
不兼容」,如果我更改類型爲int ,列*行可能會溢出。
我知道我不能重寫像這樣的大小方法,但是有沒有什麼辦法可以確保方法返回正確的大小,同時仍然實現了Collection
接口?
是的,我知道這是不切實際的,可能永遠不會成爲問題,但我有興趣知道是否有一個好的解決方案。
溢出如矩陣大於45K行×45K列(假設它是正方形)? – assylias
您計劃擁有超過2,147,483,647個元素? –
什麼你能不能做* *有'size'是'欄* rows'?它會讓你對矩陣做什麼? – sudocode