我有一个程序使用Random生成一个随机数来从数组中选择一个字符串。我想要做的是避免两次选择相同的字符串!我还想存储拉出的随机字符串的整个列表,并能够在需要时清除它们。
我的随机字符串显示在textView中。
答案 0 :(得分:0)
//use set to avoid Duplicatess....
Set<String> objSet = new HashSet<String>();
boolean one= objSet .add("hello");
System.out.println(one); // Prints "true"
boolean two= objSet .add("hello");
System.out.println(two); // Prints "false"
// if you want to remove Specific String after add then you have to use HashMap
答案 1 :(得分:0)
一个简单的解决方案是将数组转换为List,并创建另一个列表来存储拉出的字符串。因此,当您拉出随机字符串时,将其从原始列表中删除并将其添加到拉出的字符串列表中。
像
这样的东西List<String> strings = Arrays.asList(stringsArray);
List<String> usedStrings = new ArrayList<>();
String s = strings.remove(index);
doSomethingWithString(s);
usedStrings.add(s);
这样您就不会使用相同的字符串两次,并且可以跟踪使用的字符串
答案 2 :(得分:0)
将随机字符串放在ArrayList中。然后检查是否已经包含任何字符串。使用!contains(randomstr)方法,否则找其他随机