如何从List<>的数组中检索值

时间:2016-07-18 18:27:08

标签: java list

有三个列表数组,列表[0],列表[1],列表[2] 我想获取列表[1],该列表给出了主题的名称,主题来自服务器。

以下是我需要的输出:

学生科目:

数学

物理

化学

印地语

道德科学

但我正在

学生科目:

数学

物理

化学

我不明白为什么会这样。

我正在使用这段代码:

            List<Items>[] students = ActivityStudents.getStudentDetails();

            for (int i = 0; i < students[1].size(); i++) {
                subjects.append("\n" + students[1].get(i) + "\n");
            }

请帮忙。

1 个答案:

答案 0 :(得分:0)

您依赖的项目列表长度相等。显然情况并非如此。正如您所描述的那样lists[0]包含3个元素,lists[1]包含6.您只收集lists[0]中找到的项目,因此您将停在3。

虽然我不了解可能不需要的数据结构,但您应该计入最大列表大小,然后在循环中处理更短的列表。

或单独循环列表。

List<Items> results = new ArrayList<Items>();
List<Items>[] lists = ActivityStudents.getStudentDetails();

int maxIdx = Math.max(lists[0].size(), lists[1].size();
maxIdx = Math.max(maxIdx, lists[2].size());

for (int i = 0; i < maxIdx; i++) {
    Items items= new Items(SOURCE);
    if( i < lists[0].size() ) items.set("STUDENT", lists[0].get(i));
    if( i < lists[1].size() ) items.set("SUBJECTS", lists[1].get(i));
    if( i < lists[2].size() ) items.set("MARKS", lists[2].get(i));
    results.add(items);
}