如果是=就相当于引用,如果对其进行增删,那么操作的是用一个对象,二者会相互影响。
而clone相当于copy一份,单独进行操作,二者互不影响。
private List<GetTaskListByNodeNoEntity> chooseDateByType(
ArrayList<GetTaskListByNodeNoEntity> item0, String type) {
// ArrayList<GetTaskListByNodeNoEntity> item = item0;
// 操作的是同一个对象,item最后的size为0
ArrayList<GetTaskListByNodeNoEntity> item = null;
ArrayList<GetTaskListByNodeNoEntity> itemTemp = new ArrayList<GetTaskListByNodeNoEntity>();
if (item0 != null) {
item = (ArrayList<GetTaskListByNodeNoEntity>) item0.clone();// item最后的size不变
for (int i = 0; i < item0.size(); i++) {
if (type.equals("已完成")) {// 筛选已完成的
if (!item.get(i).getTaskStatus().equals("已完成")) {// 筛选留下type类型的
itemTemp.add(item.get(i));
}
} else if (type.equals("未完成")) {// 筛选未完成的
if (item.get(i).getTaskStatus().equals("已完成")) {// 筛选留下type类型的
itemTemp.add(item.get(i));
}
}
}
item.removeAll(itemTemp);
}
return item;
}