首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何动态设置数组长度

如何动态设置数组长度
EN

Stack Overflow用户
提问于 2018-05-31 06:02:36
回答 1查看 39关注 0票数 1

我有一些代码可以让我输入一个10个双精度的数组,我想要更改它,这样我就可以在开始时选择我想要输入的数量(最多10个)。我的代码如下:

代码语言:javascript
复制
import java.util.Scanner;

public class HowTo {

    public static void main(String[] args) {
        Scanner in=new Scanner (System.in);
        double num[]=new double[10];
        double i=0;

        for (i=0;i<num.length;i++) {
            System.out.println("enter a number");
            num[(int) i]=in.nextDouble();

        }
    }
} 
EN

回答 1

Stack Overflow用户

发布于 2018-05-31 06:05:48

您使用的不是列表,而是数组。使用列表(尝试ArrayList)。你没有指定一个初始大小,它会随着你的添加而增长。当你完成后,如果这真的是你想要的,它可以很容易地转换成数组。

替换:

代码语言:javascript
复制
double num[]=new double[10];

通过以下方式:

代码语言:javascript
复制
List<Double> num=new ArrayList<>();

代码语言:javascript
复制
num[(int) i]=in.nextDouble();

使用

代码语言:javascript
复制
num.add(in.nextDouble());

当您想要读取一个项目时,使用num.get(itemNumber)

现在我建议您停在这里,没有理由返回到数组--列表集合是很好的--但是如果您真的必须这样做:

如果你希望num[]是一个双精度数组,那么在最后这样做:

代码语言:javascript
复制
Double[] array = num.toArray(new Double[num.size()]);

如果你真的希望它是一个“双精度”数组(注意小写),像这样转换前一个数组:

代码语言:javascript
复制
double[] doubleArray = ArrayUtils.toPrimitive(array);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50613944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档