如何從數組中獲取,返回和刪除一個隨機元素,並且最有效的做到這一點? 陣列代碼看起來像這樣:如何獲取,返回和刪除數組中的隨機元素?
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
感謝您的任何幫助。
編輯
到它是一個記憶遊戲,所以如果重複超過兩次,我會毀了比賽的方式。
如何從數組中獲取,返回和刪除一個隨機元素,並且最有效的做到這一點? 陣列代碼看起來像這樣:如何獲取,返回和刪除數組中的隨機元素?
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
感謝您的任何幫助。
到它是一個記憶遊戲,所以如果重複超過兩次,我會毀了比賽的方式。
你可以這樣做:
String[] datas = new String[3];
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
int i = rand.nextInt(datas.length);
String val = datas[i];
datas[i] = null;
return val;
很好的答案,給予+1 :) –
請注意,這並不會刪除它本身的值,它只是用'null'覆蓋它。因此,下次您隨機獲取該索引時,最終會得到一個「null」值。 – QBrute
'好吧,我只需添加必要的錯誤檢查。 –
您可以使用%運算符創建的array.Use的Math.random隨機指標得到一個分數隨機數,並使用它來創建隨機指標如下
String[] arr = {"Cat", "Dog", "Mouse", "Horse"};
int randPos = ((int)(Math.random()*1000))%arr.length;
String randEl = arr[randPos];
System.out.println(randEl);
您不能刪除數組的元素。所有你能做的就是將其設置爲null
得到一個字符串:
Random r = new Random();
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
String selectedString = arr[r.nextInt(arr.length)];
要求退貨,從方法內歸還字符串selectedString
。
刪除
Random r = new Random();
String arr[3] = {"Cat", "Dog", "Mouse", "Horse"};
arr[r.nextInt(arr.length)] = null
注意,這將不會轉移array
元素,也不會對array
在長度被減小。
如果你需要那樣的功能,我建議使用Collection
像的ArrayList
你基本上不能刪除數組中的元素。
按照下列步驟:
List<String> list = new ArrayList<String>(Arrays.asList(arr));
int randPos = ((int)(Math.random()*1000))%arr.length;
list.remove(randPos);
arr = list.toArray(new String[0]);
希望這有助於:)
你只需要從數組中刪除一個元素或單元和滑動陣列向左? –
這似乎是HW或類似的東西。我們可以幫助你,但你應該向我們展示你的嘗試。 –
使用'.nextInt()'從'java.util.Random'生成一個**隨機**索引,並做任何你想做的事情。就那麼簡單。 –