For Loop从ArrayList获取数据

时间:2016-04-01 09:15:22

标签: java for-loop

我的ArrayList包含两条记录:

Item 1

Item 2

这是我用来获取这些记录的循环

String global = null;

for(int i=0; i<arrayList.size(); i++) {
    String name = arrayList.get(i).getName().toString();
}

global = global+name+", ";
Log.d("items:", global);

输出:

D/items:: nullItem 2,

虽然我在期待

Item 1, Item 2 

4 个答案:

答案 0 :(得分:1)

StringBuilder global = new StringBuilder();

for(int i=0; i<arrayList.size(); i++) {
    global.append(arrayList.get(i).getName().toString());
}

Log.d("items:", global.toString());

答案 1 :(得分:1)

String global = "";

for(int i=0; i<arrayList.size(); i++) {
    global+ = arrayList.get(i).getName().toString();
}

Log.d("items:", global);

答案 2 :(得分:1)

将String global初始化为空字符串而不是null。不应在null和字符串对象之间进行连接。

String global ="";
global = global +"item"; // global is now item;

如果您将全局归因于null

String global = null;
global = global + "item"; // treated as "null" + "item"

修改循环内的全局变量,您尝试访问其范围之外的名称变量,因此即使您在循环外声明名称,也会为循环中的每次迭代覆盖名称变量。

for(int i=0; i<arrayList.size(); i++) {
  String name = arrayList.get(i).getName().toString();
  global = global+name+", ";
}

答案 3 :(得分:1)

您可以使用for每个循环来避免必须管理循环索引:

StringBuilder global = new StringBuilder();
for (Yourclass object : arrayList) {
    global.append(object.getName().toString());
}
Log.d("Items: ", global);