-1

如何在每次循环后更改我的变量。我需要将声明的arraylist 变量放在代码标记为“HERE”的位置。

//variables i need to cycle through
static ArrayList<Integer> one1,two1,one2,two2=new ArrayList<>();

for(int i=0;i<4;i++){
  for(int j=0;j<word1[i].length();j++){
    if (word1[i].charAt(j)=='-'){
      HERE.add(j);
    } else if (word1[i].charAt(j)!='-') {
      HERE.add(null);
    }
  }
}

有没有一种简单的方法可以在没有几十行代码的情况下做到这一点?

4

2 回答 2

2

您可以创建自己的here方法,为您添加到多个列表中,如下所示:

package com.sandbox;

import java.util.ArrayList;
import java.util.List;

public class Sandbox {


    public static void main(String[] args) {
        List<Integer> l1 = new ArrayList<Integer>();
        List<Integer> l2 = new ArrayList<Integer>();
        List<Integer> l3 = new ArrayList<Integer>();
        here(1, l1, l2, l3);
    }

    public static void here(Integer integer, List<Integer>... lists) {
        for (List<Integer> list : lists) {
            list.add(integer);
        }
    }

}

...称为可变参数,您可以在此处了解更多信息。 每次HERE.add在当前代码中调用它,如下所示:here(j, one1, two1, one2, two2)

但我认为你可能在这里做错了什么。你为什么要这样做?

于 2013-05-20T22:45:09.957 回答
1

将您的列表放入一个数组中。

for(List<Integer> HERE: new List<Integer>[]{ one1,two1,one2,two2})
于 2013-05-20T22:43:11.057 回答