为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

偶然的你 2022-05-21 20:19:35
恐怕我对集合和数据结构的了解不足以处理涉及哈希集的类似问题。我目前有一个循环,它在一个随机化数组中的索引的程序中。传入该方法的原始数组由所有小于 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
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

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

这行代码通过每次迭代为 myList 创建新的 memorySpace,因此每次迭代循环时,myList 的值都会被重置。

所以在循环外定义 myList 。


查看完整回答
反对 回复 2022-05-21
?
倚天杖

TA贡献1828条经验 获得超3个赞

采用int zeroIndex = intArray[i];

希望你现在明白了:-)


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信