英文:
Switching from Array to ArrayList
问题
我有一些代码,我想将其转换为使用ArrayList。
如何在数组中随机生成数字?
当我使用数组时,我这样做:
public void generateNumbers() {
Random rand = new Random();
for (int i = 0; i < numbersArray.length; i++) {
numbersArray[i] = rand.nextInt((50 - 1) + 1) + 1;
}
}
在ArrayList中是否有类似于array[i]的等效写法?
英文:
I have some code that I want to convert over to using an an arraylist.
How would I go about generating numbers randomly in the array
When i used an array i did:
public void generateNumbers() {
Random rand = new Random();
for (int i = 0; i < numbersArray.length; i++ ) {
numbersArray[i] = rand.nextInt((50 - 1) + 1) + 1;
}
} //generateNumbers()
Is there an equivalent of array[i] in ArrayList?
答案1
得分: 2
以下是翻译后的内容:
您可以使用 Stream API 生成随机值的数组或列表:
public static List<Integer> getRandomList(int size, int maxValue) {
Random random = new Random();
return IntStream.range(0, size)
.map(x -> 1 + random.nextInt(maxValue))
.boxed()
.collect(Collectors.toList());
}
类似地,也可以生成数组:
public static int[] getRandomArray(int size, int maxValue) {
Random random = new Random();
return IntStream.range(0, size)
.map(x -> 1 + random.nextInt(maxValue))
.toArray();
}
英文:
You can use Stream API to generate array or list of random values:
public static List<Integer> getRandomList(int size, int maxValue) {
Random random = new Random();
return IntStream.range(0, size)
.map(x -> 1 + random.nextInt(maxValue))
.boxed()
.collect(Collectors.toList());
}
Similarly, an array can be generated:
public static int[] getRandomArray(int size, int maxValue) {
Random random = new Random();
return IntStream.range(0, size)
.map(x -> 1 + random.nextInt(maxValue))
.toArray();
}
答案2
得分: 1
随机数生成器 rand = new 随机数生成器();
整数 listSize = 5;
列表<整数> numbersList = 新列表<整数>(5);
对于 (整数 i = 0; i < listSize; i++) {
numbersList.添加(rand.生成下一个整数());
}
数组和列表的工作方式不同。数组具有静态大小,而列表会随着每个添加的项增加其大小。
英文:
Random rand = new Random();
int listSize = 5;
List<Integer> numbersList = new ArrayList<>(5)
for (int i = 0; i < listSize; i++ ) {
numbersList.add(rand.nextInt());
}
Arrays and Lists work differently. Arrays have a static size while lists increase their size with each item added.
答案3
得分: 0
不清楚你的问题是什么,所以我将回答你最后提出的直接问题:
> 在ArrayList中是否有类似于array[i]的等价操作?
这取决于你对它的使用。你可以使用 nameOfArrayList.set(i, *value*)
来设置值,使用 nameOfArrayList.get(i)
来获取值。ArrayList
类中还有许多其他方法。我强烈建议你阅读文档。
你还需要注意,ArrayList
与数组的工作方式不同。前者是可变的,而后者不是。你可以在这里阅读相关信息。
英文:
It's not immediately clear what your question is, so I will address the the direct question you asked in the end:
> Is there an equivalent of array[i] in ArrayList?
It depends on what you're doing with it. You would use nameOfArrayList.set(i, *value*)
to set the value, and nameOfArrayList.get(i)
to retrieve the value. There are a lot more methods in the ArrayList
class. I strongly suggest that you read the documentation.
You also need to note that ArrayList
s do not work like arrays. The former are mutable while the latter are not. You can read up on it here.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论