java - 如何从ArrayList中删除随机元素

标签 java android arraylist random

我有一个 ArrayList,我想随机获取一个元素,删除该元素并在没有删除的元素的情况下进行另一个随机。我怎样才能做到这一点?我已经尝试过,但没有成功。

谢谢。

主要 Activity :

public class MainActivity extends AppCompatActivity {

    Button button;
    TextView textView;

    ArrayList<Integer> list = new ArrayList<Integer>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button)findViewById(R.id.button);
        textView = (TextView)findViewById(R.id.textView);

        list.add(0);
        list.add(1);
        list.add(2);
        list.add(3);

    }

    public void button(View view) {
        Random rand = new Random();
        int randomElement = list.get(rand.nextInt(list.size()));
        if (list.isEmpty()) {
            textView.setText("Empty");
        } else if (randomElement == 0) {
            textView.setText("Red");
            list.remove(randomElement);
        } else if (randomElement == 1) {
            textView.setText("Blue");
            list.remove(randomElement);
        } else if (randomElement == 2) {
            textView.setText("Yellow");
            list.remove(randomElement);
        } else if (randomElement == 3) {
            textView.setText("Green");
            list.remove(randomElement);
        }
    }
}

最佳答案

我知道您想要做什么,但我建议采用不同的方法 - 将颜色放入列表中。

public enum Colors {
    GREEN, RED, YELLOW;
}

...

List<Colors> list = new ArrayList<Colors>(Arrays.asList(Colors.values()));
Random rand = new Random();

...

public void button(View view) {
    if (list.isEmpty()) {
        textView.setText("Empty");
    } else {
        Colors randomElement = list.remove(rand.nextInt(list.size()));
        textView.setText(randomElement.name());
    }
}

关于java - 如何从ArrayList中删除随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48691091/

相关文章:

java - 如何将包含转换为 equals.ignorecase?

Android Activity 完成更新以前的 Activity

android - 如何在帧中实时加入具有 alpha/透明度的 png

java - 更改添加的数组也会更改我添加的数组列表

c++ - shared_ptrs 和三法则

java - 克隆集合成员匹配条件

java - 在 AEM 中,如何从 body 部分的组件中获取值并将它们写入 html 的 head 部分

java - 在 Java 中使用 org.json.simple 解析不带引号的 JSON 键

java - 再次出现UnknownHostException!

android - Jetpack Compose 和 Compose Navigation 如何处理 Android Activity ?