我在Java中有一些对象(比如说Double),我需要一个长度为n的列表,每个元素的元素都是对该Double的引用。我想要这样做的成语,希望但不一定不使用仅O(1)内存。
答案 0 :(得分:1)
答案 1 :(得分:1)
为此目的创建数据结构怎么样? 这样的事情:
import java.util.HashMap;
public class SpecialArray {
private HashMap<Integer, Double> elements;
private Double specialElement;
private int size;
public SpecialArray(Double specialElement, int size) {
this.elements = new HashMap<Integer, Double>();
this.specialElement = specialElement;
this.size = size;
}
public Double get(int index) {
if(index<0 || index>=size) {
return null;
}
if(elements.containsKey(index)) {
return elements.get(index);
}
return specialElement;
}
public boolean add(Double d, int index) {
if(index<0 || index>=size || elements.containsKey(index)) {
return false;
}
elements.put(index, d);
return true;
}
}
当然,这不是一个完整的例子,可以用泛型类型编写。 但是如果你的列表中还有其他一些元素,那么我认为这很有用。
答案 2 :(得分:0)
Collections.fill()
可能会帮到你