如何使用Java中的for循环动态创建列表

时间:2016-01-18 11:46:34

标签: java

这是我正在做的事情: 1.从服务器获取数组 2.使用Asynctask,我在onPostExecute方法中捕获字符串 3.迭代数组列表并根据数组的字符串值创建列表。

但我收到此错误"变量'结果'已在此范围内定义",我尝试通过网络搜索。但徒劳无功。我不明白这个问题。

以下是代码:

UIViewController

提前致谢

6 个答案:

答案 0 :(得分:0)

你已经定义了String []结果。改变

 List<String> result[i] = new ArrayList<String>();

到另一个变量

答案 1 :(得分:0)

您收到错误的原因是:

你的论点中有String[] result。然后尝试定义List<String> result。所以编译器抱怨你有两个同名的变量。

答案 2 :(得分:0)

这里有两件事:

  1. onPostExecute()函数上已有结果变量。尝试重命名其他结果变量。

  2. 您无法使用[]运算符来实现您的目标。

  3. 您想要存储的内容:字符串列表或(ArrayList)列表?

答案 3 :(得分:0)

试试这样:

 @Override
  protected void onPostExecute(String[] result) {
    super.onPostExecute(result);
    int count = result.length;
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < count; i++) {
        list.add(result[i]);
    }

  }

答案 4 :(得分:0)

尽管有一个名为List<String> result的参数,您仍尝试创建result变量,因此您需要重命名它。您还需要在循环外部初始化列表以执行您想要的操作,例如:

List<String> resultList = new ArrayList<String>();
for(int i=0; i<result.length; i++){
    resultList.add(result[i]);
}

修改

如果要创建多个列表,则需要定义类型为List<String>的集合,例如:

List<List<String>> resultList = new ArrayList<List<String>>();
for(int i=0; i<result.length; i++){
    resultList.add(new ArrayList<String>());
}

答案 5 :(得分:0)

您可以使用此

直接将String Array转换为ArrayList
   List<String> list = new ArrayList<String>(Arrays.asList(yourStringArray))

感谢。希望它会有所帮助。