gpt4 book ai didi

java - 如何从数组列表中获取不同的值?

转载 作者:行者123 更新时间:2023-12-01 17:46:45 27 4
gpt4 key购买 nike

恐怕我对集合和数据结构的理解不足以处理涉及哈希集的类似问题。我目前有一个循环,在一个程序中随机化数组中的索引。传入该方法的原始数组由所有小于 1,000 的素数组成。

不包括完整的程序,因为它是更大的家庭作业的一部分。

我的问题是,我创建的 if 语句正在重复打印数字,即使我认为我将其编码为仅在数字已不在数组中时打印该数字。

有人可以指出我的逻辑错误吗?

public static void shuffle(int[] intArray, String name)
{
assert intArray != null : "null!";
long seed = name.hashCode();
Random random = new Random(seed);

for(int i = 0; i < 1000; i++)
{
int random_m = random.nextInt(intArray.length);
int random_n = random.nextInt(intArray.length);

int temp = intArray[random_m];
intArray[random_m] = intArray[random_n];
intArray[random_n] = temp;

int zeroIndex = intArray[0];
List<Integer> myList = new ArrayList<Integer>();

if(!myList.contains(zeroIndex))
{
System.out.println(zeroIndex);
}
myList.add(zeroIndex);
}
}

部分输出示例:

582158215821582158215821582158215821582158215821

最佳答案

        List<Integer> myList = new ArrayList<Integer>();

这行代码在每次迭代中为 myList 创建新的内存空间,因此每次迭代循环时,myList 值都会被重置。

因此在循环之外定义 myList。

关于java - 如何从数组列表中获取不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54339212/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com