我在 Java 中有一些对象(比如一个 Double),我需要一个长度为 n 的列表,其每个元素都是对该 Double 的引用。我想要一个习惯用法,希望但不一定不使用 O(1) 仅内存。
问问题
53 次
3 回答
1
于 2013-02-19T09:21:19.893 回答
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;
}
}
当然,这不是一个完整的示例,可以使用泛型类型编写。但是,如果您的列表中还有其他一些元素,那么我认为这可能很有用。
于 2013-02-19T09:29:05.937 回答
0
Collections.fill()
可能会帮助你
于 2013-02-19T09:14:24.477 回答