-1

我一直在尝试使用以下代码声明一维单数组:

double[] temporary= {0.7143, 0.5392, 0.5444, 0.5321, 0.5417, 0.5528, 0.5327, 0.5267, 0.5271};

并且代码一直运行完美,但每次我尝试声明为动态值时都会出现问题。也许我不知道如何正确声明它。

这是我最近一直在尝试的:

double temporary[];
temporary = new double[1000];

我尝试过并尝试使用固定大小的以下代码:

for (int i = 0; i < window.length; i++)
            {
                window[i] = temporary[j + i - windowSize];
            } 

这与数组列表:

for (int i = 0; i < window.length; i++)
            {
                window[i] = temporary.get(j+i-windowSize);
            }

正如我上面提到的,我只想声明空的双精度数组并动态填充它。

非常感谢

4

6 回答 6

1

为此,您将需要使用 ArrayList。

ArrayList<Double> temporary = new ArrayList<Double>();
temporary.add(0.46567);
...

问题是Java中的普通数组,例如double[]具有固定大小。您只能设置一次数组的大小,使用 ArrayList 时,您可以随时添加和删除元素。

于 2012-09-24T19:26:20.413 回答
0

如果您提前知道内容的长度,那么它会是这样的;

temporary = new double[sizeofContent];

如果您不提前知道内容长度,那么您可能需要使用类似的东西list(这是动态的),然后将其转换为arrayusing toArray(type).

于 2012-09-24T19:27:31.380 回答
0

您可以为此使用 ArrayList :

List<Double> temporary = new ArrayList<Double>();
temporary.add(0.5588);
于 2012-09-24T19:28:23.660 回答
0

如果您不是特别需要随机访问,则首选 LinkedList 而不是 ArrayList。实际上,只要这个增长,它将避免多次调整阵列的大小(达到容量时):

List<Double> temporary = new LinkedList<Double>();
temporary.add(0.46567);
//...
于 2012-09-24T19:32:51.593 回答
0

双[]临时=新双[1000];

初始化使用像

临时[0] = 2.456d;

希望能帮助到你 :-)

于 2012-09-24T19:32:01.157 回答
-1

使用集合对象ArrayList,如

List<Double> doubles = new ArrayList<Double>();
doubles.add(...);
doubles.add(...);
...
Double[] temp = doubles.toArray(new Double[0]);
于 2012-09-24T19:30:26.477 回答