java - 一个接一个地创建新元素
问题描述
假设我的数组中有现有元素,[10, 20, 30]
我希望用户输入一个元素,例如。用户输入元素4
,所以我希望输出变成这样[10, 4, 20, 4, 30]
。
但我只设法让用户输入元素 10 次(比如我的数组大小),但我只想输入一次。
我不知道如何将“ score.size()
”,即大小为 10,只有一个元素,所以我可以得到这样的输出[10, 4, 20, 4, 30]
。
这是我的一些编码:
ArrayList<Double> score = new ArrayList<Double>();
// (here I already set some elements in the array)
for (int i = 1; i <= score.size(); i += 2)
{
System.out.println("Enter the element you want to add: ");
double addedElement = in.nextDouble();
score.add(i, addedElement);
}
System.out.println(score);
解决方案
不要score.size()
在循环中使用,因为它的大小会随着您在循环中添加元素而增加。而是将大小存储在局部变量中,然后将该变量用于循环中的条件。
更改如下:
int n = score.size();
for (int i = 0; i < n-1; i ++) {
System.out.println("Enter the element you want to add: ");
Double addedElement = in.nextDouble();
score.add(2*i+1, addedElement);
}
此代码将要求您为每次迭代提供一个数字。所以,如果你有一个现有的数组,[10,20,30]
你输入9
和5
作为输入。然后你会得到输出为[10,9,20,5,30]
.
如果您只想要一个数字作为输入,那么只需将输入行移到循环之前。
int n = score.size();
System.out.println("Enter the element you want to add: ");
Double addedElement = in.nextDouble();
for (int i = 0; i < n-1; i ++) {
score.add(2*i+1, addedElement);
}
因此,如果您输入有一个现有的数组[10,20,30]
并且您输入9
作为输入。然后你会得到输出为[10,9,20,9,30]
.
推荐阅读
- html - 如何使用具有动态列数和行数的 CSS 网格?
- r - 难以识别 x 参数,用于 html_nodes 函数
- java - arraylist 的输出未正确打印
- windows - padding the middle of a string
- sql - SQL Server: table join based on record-dependent values
- mysql - Sequelize And / Or Operators
- javascript - How to stop the grid from loading
- c# - 如何在外部运行进程中更改 PEB 的命令行
- mysql - 将 MSSQL 存储过程转换为 MySQL - CONCAT 问题
- r - 如何从 SSIS-SQL-Query 中的 script.R 文件加载 R 脚本