java - 如何将ArrayList中的每个数字放入变量中

标签 java arrays list arraylist processing

所以,我正在创建一个游戏,当用户的玩家点击一个位置(有很多)时,我希望游戏结束。

我有两个像这样的ArrayList

ArrayList<Integer> ex = new ArrayList<Integer>(), ey = new ArrayList<Integer>();

并且“坏”方 block (如果用户击中它就会死亡)会在他们获得加电后出现,因此经常会添加整数

我尝试执行一个 for 循环 来遍历大小(如下所示),但这不起作用,因为 i 只选择最新的一个,显然。

for(int i = 0; i < ex.size() - 1; i++) {
            if(x.get(0)==ex.get(i) && y.get(0) == ey.get(i)){
                gameover = true;
            }
        }

如果我像这样循环整个arrayList

(int i : ex)

然后在开始游戏时它给了我这个(如下)错误:

Exception in thread "Animation Thread" java.lang.IndexOutOfBoundsException: Index: 10, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at snakegame.SnakeGame.draw(SnakeGame.java:113)
at processing.core.PApplet.handleDraw(PApplet.java:2386)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)
at processing.core.PApplet.run(PApplet.java:2256)
at java.lang.Thread.run(Thread.java:745)

那么,有没有办法将 ArrayList 的所有数字存储在一个变量中?

最佳答案

您对“enhanced for”的语义感到困惑

for(int i = 0; i < ex.size() - 1; i++) {

将值012...放入i中,直到ex .size()-1i 作为索引

for(int i : ex) {

将值 ex.get(0)ex.get(1) 放入 i 中。这是内容

在第二种情况下,逻辑应该是

int j = 0;
for (int i : ex) {
  if(x.get(0) == i && y.get(0) == ey.get(j)){
    ..
  }
  j++;
}

在这种情况下,增强的 for 没有什么意义。

如果它可以帮助您可视化,那么使用增强的 for 变量必须始终是数组/迭代器的类型(在这种情况下,恰好您可以将 Integer 自动装箱为 int)

关于java - 如何将ArrayList中的每个数字放入变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27179744/

相关文章:

java - 使用 webServiceTemplate.marshalSendAndReceive 时返回 int

c - 访问数组元素时指针的索引

perl - 我如何检查一个值是否在 Perl 的列表中?

java - 提取 List<String> 数据以匹配 LinkedHashMap<Integer, List<String>>

java - EJB 仍然有用吗? Spring Framework 有哪些替代 EJB 的方法?

java - 通过设置静态字段禁用一个静态方法调用的 if-Condition

list - 无法创建 Rust LinkedList

arrays - 如何在 PL/SQL 中手动初始化 RECORD 集合?

Javascript 用数组填充选项框

python - 在列表中重复列表 X 次