Rya*_*yan 0 java arrays string random
我是从一个数组中随机选择一个字符串,在选中它之后我想制作它以便我不能再次选择该字符串.我应该"删除"它还是有更好的方法?
这是我随机选择它的代码,
position = positionList[(int) (Math.random() * positionList.length)];
Run Code Online (Sandbox Code Playgroud)
如果您使用ArrayList而不是使用,删除将是更好的选择array.因为在数组的情况下,你必须重新调整它的大小(这意味着你必须每次创建一个新的数组 - 致命的想法.避免它),或者设置选择的索引null.
但是这种方法(设置null)的问题在于,您可能需要多次进行随机选择以获得一个有效的随机索引,尤其是当您只剩下1有效索引时.因此,最好使用a List,并从中删除所选元素.
List<String> list = new ArrayList<String>();
// Populate your list.
Collections.shuffle(list); // Shuffle the list.
String random = list.remove(0); // Will remove the first element
Run Code Online (Sandbox Code Playgroud)
请注意,如果你想要原版ArrayList,后来的原版,那么你可能会复制它.