0

我在 Java 中有一些对象(比如一个 Double),我需要一个长度为 n 的列表,其每个元素都是对该 Double 的引用。我想要一个习惯用法,希望但不一定不使用 O(1) 仅内存。

4

3 回答 3

1

您可以使用 java.util.Collections.nCopies(n, value)

于 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 回答