【发布时间】:2017-09-13 17:33:50
【问题描述】:
我的意思是我得到了一个对象数组,如果我要更改的列表没有给定列表中的一些对象,那么我将它们添加到我的列表中,如果我的列表确实有一些给定列表没有的对象,然后我将它们从列表中删除。 我试过实现这个,但没有成功。
void changeList(String data){
String[] elements = data.split(":");
for (int i = 0; i < elements.length - 1; i++) {
if(i < listOfUsersModel.size() && !listOfUsersModel.getElementAt(i).equalsIgnoreCase(elements[i+1])){
listOfUsersModel.remove(i);
listOfUsersModel.addElement("<html>" + elements[i+1] + "</html>");
} else if (i >= listOfUsersModel.size()){
listOfUsersModel.addElement("<html>" + elements[i+1] + "</html>");
}
}
}
是的,elements 中的第一个元素将始终是 LIST,我只需要它来指定它是一个列表还是其他东西。附言ListOfUsersModel 是一个 DefaultListModel 对象。
【问题讨论】:
-
如果您打算在迭代时从
List(或任何集合)中删除元素,您应该使用正确的Iterator。 -
我认为使用数组对你没有帮助,尝试使用ArrayList
-
@user7790438 - 他没有添加/删除数组元素,所以数组对于这个用例来说很好。
-
@TimBiegeleisen - 问题是他正在删除和添加。 (或替换和添加)。如果您使用典型的
List迭代器执行此操作,则会导致 CCME。 OTOH,他没有使用标准的List方法:getElementAt,addElement。
标签: java list changelist