恐怕我對(duì)集合和數(shù)據(jù)結(jié)構(gòu)的了解不足以處理涉及哈希集的類似問(wèn)題。我目前有一個(gè)循環(huán),它在一個(gè)隨機(jī)化數(shù)組中的索引的程序中。傳入該方法的原始數(shù)組由所有小于 1,000 的素?cái)?shù)組成。不包括完整的課程,因?yàn)樗歉蟮募彝プ鳂I(yè)的一部分。我的問(wèn)題是我創(chuàng)建的 if 語(yǔ)句重復(fù)打印出數(shù)字,即使我認(rèn)為我將它編碼為僅在數(shù)字已經(jīng)不在數(shù)組中時(shí)才打印出數(shù)字。有人可以指出我的邏輯錯(cuò)誤嗎?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貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
List<Integer> myList = new ArrayList<Integer>();
這行代碼通過(guò)每次迭代為 myList 創(chuàng)建新的 memorySpace,因此每次迭代循環(huán)時(shí),myList 的值都會(huì)被重置。
所以在循環(huán)外定義 myList 。
添加回答
舉報(bào)
0/150
提交
取消