gpt4 book ai didi

java - ArrayList 或任何其他优雅的解决方案?

转载 作者:行者123 更新时间:2023-12-02 04:05:07 27 4
gpt4 key购买 nike

(提前为描述性问题道歉)我必须将整数作为两个变量的值,并从控制台继续获取整数值,只要我愿意。在任何时候,我都可能要求输入对应于变量的整数的总和。例如,对于变量 A,我输入了 5,5,4,对于变量 B,我输入了 2,3,6 [这些输入是在不同时间而不是同时从控制台获取的]。在任何时候我都需要显示 A 的总和(即 14)和 B 的总和(即 11)。

我的想法是声明两个数组列表:A和B各一个。当我获得A和B的值时,我会继续将它们添加到各自的数组列表中。
每当如果需要显示 A 的总和,我会将 A 的 Arraylist 索引中的值添加并显示。 B 也一样。
但是,我怀疑这种方法可能效率低下。因为如果我为变量 A 输入 1000 个整数,那么 arrayList 将变成 1000 个索引长,并且会消耗太多内存,并且求和会产生太多工作量。我可以在不使用 arraylist 的情况下实现我想要的吗?还有其他优雅的解决方案吗?

最佳答案

您对列表中的 1000 个整数以及对它们求和所需的时间有疑问吗?让我消除你所有的疑虑:你没有问题。

试试这个代码:

long start = System.currentTimeMillis();
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < 1000000; i++)
list.add(i);
int sum = 0;
for (int num : list)
sum += num;
long end = System.currentTimeMillis();
System.out.printf("Sum of %d values is %d%n", list.size(), sum);
System.out.printf("Built and calculated in %.3f seconds%n", (end - start) / 1000.0);

它构建了一个 ArrayList<Integer>具有一百万值,而不是区区1000,然后将它们相加。输出为:

Sum of 1000000 values is 1783293664
Built and calculated in 0.141 seconds

所以,一百万不到一秒。 1000?不是问题!

关于java - ArrayList 或任何其他优雅的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34379254/

27 4 0