Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎么能';复制';将一个项目放入包含n个引用的列表中?_Java_List_Copy - Fatal编程技术网

Java 我怎么能';复制';将一个项目放入包含n个引用的列表中?

Java 我怎么能';复制';将一个项目放入包含n个引用的列表中?,java,list,copy,Java,List,Copy,我在Java中有一些对象(比如Double),我需要一个长度为n的列表,每个元素都是对Double的引用。我想要一个这样做的习惯用法,希望但不一定不使用O(1)only内存 Collections.fill() 可能会帮助您您可以使用 .为此目的创建一个数据结构怎么样? 诸如此类: import java.util.HashMap; public class SpecialArray { private HashMap<Integer, Double> elements;

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

Collections.fill()
可能会帮助您

您可以使用
.

为此目的创建一个数据结构怎么样? 诸如此类:

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;
    }
}
import java.util.HashMap;
公共类特殊射线{
私有HashMap元素;
私人双专业;
私有整数大小;
公共特殊数组(双特殊元素,整数大小){
this.elements=newhashmap();
this.specialElement=specialElement;
这个。大小=大小;
}
公共双get(int索引){
如果(索引=大小){
返回null;
}
if(元素.容器(索引)){
返回元素.get(索引);
}
退货优惠;
}
公共布尔加法(双d,整数索引){
if(index=size | | elements.containsKey(index)){
返回false;
}
元素。put(索引,d);
返回true;
}
}
当然,这不是一个完整的示例,可以使用泛型类型编写。
但是,如果列表中还有一些其他元素,那么我认为这可能会很有用。

“我想要一个这样做的习惯用法,”它是什么意思。你能再解释一下吗?这确实是O(1)空间,因为结果列表对象被实现为一个引用加上一个int(长度)。