如何刪除隨機選擇的數組中的項?。它不是在一個數組中給我兩個不同的項目,而是打印隨機選擇的相同項目。
String[] names = {"jey","abby","alyssa","cole","yzabel","miho"};
Random rand = new Random();
String names_rand = names[rand.nextInt(names.length)];
for(int i = 0; i < 2; i++){
System.out.println(names_rand);
}
原因很簡單,因為for循環之外的任何代碼都不會再次運行,請嘗試在每個循環中運行隨機代碼,以從數組中獲得一個新的(可能是相同的,因為它是隨機的)字符串
至于刪除使用字符串數組會有點復雜的項目,因為一旦分配了它,您就不能添加或刪除它(您不能修改它的大小),除非您愿意創建一個新的臨時數組,否則請復制它的所有項目,而不復制所選的字符串,如下所示:
這種復雜代碼的更好版本是使用
ArrayList
,它只需一個方法調用即可輕松添加和刪除其項(在運行時更改其大小):您可以通過此鏈接閱讀更多關于ArrayList如何添加/刪除項的信息,以及許多教程,只要在google搜索引擎中編寫ArrayList java即可
注意:我已經將
Math.min(2, names.length)
添加到for循環條件中,因為我擔心使用Math.min
會出現數組長度小于要刪除的項目數的情況。我正在確保for循環不會嘗試訪問數組中不存在的項目