猿问

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

恐怕我对集合和数据结构的了解不足以处理涉及哈希集的类似问题。我目前有一个循环,它在一个随机化数组中的索引的程序中。传入该方法的原始数组由所有小于 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);

    }

}

输出的部分示例:


5821 5821 5821 5821 5821 5821 5821 5821 5821 5821 5821 5821


偶然的你
浏览 124回答 2
2回答

一只萌萌小番薯

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<Integer>&nbsp;myList&nbsp;=&nbsp;new&nbsp;ArrayList<Integer>();这行代码通过每次迭代为 myList 创建新的 memorySpace,因此每次迭代循环时,myList 的值都会被重置。所以在循环外定义 myList 。

倚天杖

采用int zeroIndex = intArray[i];希望你现在明白了:-)
随时随地看视频慕课网APP

相关分类

Java
我要回答