从Array切换到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;
}   
} //generateNumbers()

ArrayList中是否存在array[i]的等价项?

您可以使用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();
}
Random rand = new Random();
int listSize = 5;
List<Integer> numbersList = new ArrayList<>(5)
for (int i = 0; i < listSize; i++ ) {
numbersList.add(rand.nextInt());
}   

数组和列表的工作方式不同。数组具有静态大小,而列表随着每个项目的添加而增加其大小。

现在还不清楚你的问题是什么,所以我最后会解决你问的直接问题:

ArrayList中是否存在array[i]的等价项?

这取决于您对它所做的操作。您可以使用nameOfArrayList.set(i, *value*)来设置值,使用nameOfArrayList.get(i)来检索值。ArrayList类中有更多的方法。我强烈建议您阅读文档。

您还需要注意,ArrayList的工作方式与数组不同。前者是可变的,而后者则不然。你可以在这里阅读。

最新更新