无法从两个不同的数组列表中检索值

时间:2018-11-14 12:02:41

标签: android loops arraylist

我有两个不同大小的数组列表,我的问题是我必须从两个列表中检索值并显示到textview上,当我使用两个循环时,它首先完成了内部循环,然后执行外循环和价目表将被打印两次,如果使用break中断内循环,则在第一个循环之后将完全忽略内循环。

ArrayList<LocationDto>location = new ArrayList<>();
education<EducationDto> = new ArrayList<>();

if (education.size() != 0) {
    for (int j = 0; j < education.size(); j++) {
        for (int k = 0; k < location.size(); k++) {
            if (!education.get(j).getSpecializationTitle().equalsIgnoreCase("") && !location.get(k).getLocationName().equalsIgnoreCase("")) {
                tvEducation.append(education.get(j).getEducationTitle() + "(" + education.get(j).getSpecializationTitle() + ")" + " Located at " + location.get(k).getLocationName());
            } else if (education.get(j).getSpecializationTitle().equalsIgnoreCase("") && !location.get(k).getLocationName().equalsIgnoreCase("")) {
                tvEducation.append(education.get(j).getEducationTitle() + " Located at " + location.get(j).getLocationName());
            } else if (!education.get(j).getSpecializationTitle().equalsIgnoreCase("") && location.get(k).getLocationName().equalsIgnoreCase("")) {
                tvEducation.append(education.get(j).getEducationTitle() + "(" + education.get(j).getSpecializationTitle() + ")");
            } else {
                tvEducation.append(education.get(j).getEducationTitle());
            }
            if (j != education.size() - 1) {
                tvEducation.append(" , ");
            }
            break;
        }
    }
} else {
    tvEducation.setText("Not Specified");
    tvEducation.setTextColor(getResources().getColor(R.color.color_three));
}

我现在应该做什么?

1 个答案:

答案 0 :(得分:0)

break语句不管是否完成都终止循环,因此您的问题是,您在内部for循环中直接放置了一个break,而没有某种条件。因此,第一次循环运行将到达中断,这就是为什么它在第一次迭代时终止!

您可能想将中断放在最后的if语句中?