Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有任何重复/重复字符串的情况下随机化数组?_Java_Android_Arrays_Random - Fatal编程技术网

Java 如何在没有任何重复/重复字符串的情况下随机化数组?

Java 如何在没有任何重复/重复字符串的情况下随机化数组?,java,android,arrays,random,Java,Android,Arrays,Random,我可以随机化我在android中为每个按钮设置的字符串,但是有相同字母的重复。没有任何重复的字母我怎么做 Random random = new Random(); String[] letters = {"G","O","K","U","H","A","N","L","Z","M"}; c1r1 = (Button) findViewById(R.id.btn1); c2r1 = (Button) findViewById(R.id.btn2); c3

我可以随机化我在android中为每个按钮设置的字符串,但是有相同字母的重复。没有任何重复的字母我怎么做

    Random random = new Random();
    String[] letters = {"G","O","K","U","H","A","N","L","Z","M"};

    c1r1 = (Button) findViewById(R.id.btn1);
    c2r1 = (Button) findViewById(R.id.btn2);
    c3r1 = (Button) findViewById(R.id.btn3);
    c4r1 = (Button) findViewById(R.id.btn4);
    c5r1 = (Button) findViewById(R.id.btn5);
    c1r2 = (Button) findViewById(R.id.btn6);
    c2r2 = (Button) findViewById(R.id.btn7);
    c3r2 = (Button) findViewById(R.id.btn8);
    c4r2 = (Button) findViewById(R.id.btn9);
    c5r2 = (Button) findViewById(R.id.btn10);
    first = (Button) findViewById(R.id.first);
    second = (Button) findViewById(R.id.second);
    third = (Button) findViewById(R.id.third);
    fourth = (Button) findViewById(R.id.fourth);

    c1r1.setText("" + letters[random.nextInt(letters.length)]);
    c2r1.setText("" + letters[random.nextInt(letters.length)]);
    c3r1.setText("" + letters[random.nextInt(letters.length)]);
    c4r1.setText("" + letters[random.nextInt(letters.length)]);
    c5r1.setText("" + letters[random.nextInt(letters.length)]);
    c1r2.setText("" + letters[random.nextInt(letters.length)]);
    c2r2.setText("" + letters[random.nextInt(letters.length)]);
    c3r2.setText("" + letters[random.nextInt(letters.length)]);
    c4r2.setText("" + letters[random.nextInt(letters.length)]);
    c5r2.setText("" + letters[random.nextInt(letters.length)]);
private String[]字母={“G”、“O”、“K”、“U”、“H”、“A”、“N”、“L”、“Z”、“M”};
私有列表=新的ArrayList(Arrays.asList(字母));
私有字符串getUniqueRandomString(){
int i=ThreadLocalRandom.current().nextInt(0,letters.size()+1);
字符串s=字母。get(i);
删除第(i)款;
返回s;
}
私有void init(){
c1r1=(按钮)findViewById(R.id.btn1);
c2r1=(按钮)findViewById(R.id.btn2);
c3r1=(按钮)findViewById(R.id.btn3);
c4r1=(按钮)findViewById(R.id.btn4);
c5r1=(按钮)findViewById(R.id.btn5);
c1r2=(按钮)findViewById(R.id.btn6);
c2r2=(按钮)findViewById(R.id.btn7);
c3r2=(按钮)findViewById(R.id.btn8);
c4r2=(按钮)findViewById(R.id.btn9);
c5r2=(按钮)findViewById(R.id.btn10);
first=(按钮)findViewById(R.id.first);
秒=(按钮)findViewById(R.id.second);
第三个=(按钮)findViewById(R.id.third);
第四个=(按钮)findViewById(R.id.fourth);
c1r1.setText(getUniqueRandomString());
c2r1.setText(getUniqueRandomString());
// ... 
}
私有字符串[]字母={“G”、“O”、“K”、“U”、“H”、“A”、“N”、“L”、“Z”、“M”};
私有列表=新的ArrayList(Arrays.asList(字母));
私有字符串getUniqueRandomString(){
int i=ThreadLocalRandom.current().nextInt(0,letters.size()+1);
字符串s=字母。get(i);
删除第(i)款;
返回s;
}
私有void init(){
c1r1=(按钮)findViewById(R.id.btn1);
c2r1=(按钮)findViewById(R.id.btn2);
c3r1=(按钮)findViewById(R.id.btn3);
c4r1=(按钮)findViewById(R.id.btn4);
c5r1=(按钮)findViewById(R.id.btn5);
c1r2=(按钮)findViewById(R.id.btn6);
c2r2=(按钮)findViewById(R.id.btn7);
c3r2=(按钮)findViewById(R.id.btn8);
c4r2=(按钮)findViewById(R.id.btn9);
c5r2=(按钮)findViewById(R.id.btn10);
first=(按钮)findViewById(R.id.first);
秒=(按钮)findViewById(R.id.second);
第三个=(按钮)findViewById(R.id.third);
第四个=(按钮)findViewById(R.id.fourth);
c1r1.setText(getUniqueRandomString());
c2r1.setText(getUniqueRandomString());
// ... 
}
公共ArrayList ArrayList;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
arrayList=新的arrayList();
字符串[]字母={“G”、“O”、“K”、“U”、“H”、“A”、“N”、“L”、“Z”、“M”};
for(字符串s:字母)
arrayList.add(s);
c1r1.setText(“+getRandom());
c2r1.setText(“+getRandom());
...
...
}
公共字符串getRandom(){
String randomString=arrayList.get(random.nextInt(arrayList.size());
arrayList.remove(随机字符串);
返回随机字符串;
}
公共ArrayList ArrayList;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
arrayList=新的arrayList();
字符串[]字母={“G”、“O”、“K”、“U”、“H”、“A”、“N”、“L”、“Z”、“M”};
for(字符串s:字母)
arrayList.add(s);
c1r1.setText(“+getRandom());
c2r1.setText(“+getRandom());
...
...
}
公共字符串getRandom(){
String randomString=arrayList.get(random.nextInt(arrayList.size());
arrayList.remove(随机字符串);
返回随机字符串;
}
您可以使用 Collections.shuffle(列表)

您只需使用
收藏。洗牌(列表)

erm,等等。您使用了我的解决方案并将其清理干净了?:)谢谢@EmanuelSeibold和Abhishek Aryan。它非常有效:)呃,等等。您使用了我的解决方案并将其清理干净了?:)谢谢@EmanuelSeibold和Abhishek Aryan。它非常有效:)
private String[] letters = {"G","O","K","U","H","A","N","L","Z","M"};
private List<String> list = new ArrayList<String>(Arrays.asList(letters ));

private String getUniqueRandomString() {
      int i = ThreadLocalRandom.current().nextInt(0, letters.size() + 1);
      String s = letters.get(i);
      letters.remove(i);
      return s;
}
private void init() { 

    c1r1 = (Button) findViewById(R.id.btn1);
    c2r1 = (Button) findViewById(R.id.btn2);
    c3r1 = (Button) findViewById(R.id.btn3);
    c4r1 = (Button) findViewById(R.id.btn4);
    c5r1 = (Button) findViewById(R.id.btn5);
    c1r2 = (Button) findViewById(R.id.btn6);
    c2r2 = (Button) findViewById(R.id.btn7);
    c3r2 = (Button) findViewById(R.id.btn8);
    c4r2 = (Button) findViewById(R.id.btn9);
    c5r2 = (Button) findViewById(R.id.btn10);
    first = (Button) findViewById(R.id.first);
    second = (Button) findViewById(R.id.second);
    third = (Button) findViewById(R.id.third);
    fourth = (Button) findViewById(R.id.fourth);

    c1r1.setText(getUniqueRandomString());
    c2r1.setText(getUniqueRandomString());

// ... 

}
public ArrayList<String> arrayList;

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    arrayList=new ArrayList<String>();

    String[] letters = {"G","O","K","U","H","A","N","L","Z","M"};
    for (String s:letters)
      arrayList.add(s);



    c1r1.setText("" + getRandom());
    c2r1.setText("" + getRandom());
    ...
    ...

}


public String getRandom(){

    String randomString=arrayList.get(random.nextInt(arrayList.size()));
    arrayList.remove(randomString);
    return randomString;

}