如何动态更改列表



我的意思是我给予了一系列对象,如果我要更改的列表没有给定列表中的某些对象我的,如果我的列表确实有一些给定列表没有的对象,则我将其从列表中删除。我试图实施此功能,但它不起作用。

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>");
        }
    }
}

是的,元素中的第一个元素将始终列表,我只需要它来指定这是列表还是其他内容。P.S.ListOfusersModel是DefaultListModel对象。

我可以在您的代码中看到一些问题:

  1. 您有一系列字符串(由split产生(和一个列表。您将数组的索引用作列表的索引。这意味着,如果它们具有与数组中相同的索引,则只能从列表中删除匹配元素。这与您对要做的事情的描述不符。

  2. 从列表中删除元素时,删除元素后所有元素移动到另一个位置;即removeElement(i)导致元素i+1移动到位置i,元素i+2移动到i+1等。但是...然后您增加i !!

  3. addElement在列表末尾添加元素

如果您打算删除/替换匹配的所有元素,则需要一个嵌套环。另外,查看您正在使用的类的setElementinsertElement方法。(显然,您正在使用不在List API中的方法...但是我不知道它是哪个API。(

最后,我看不到您在哪里尝试这样做:

...如果我的列表确实具有一些给定列表没有的对象,则我将其从列表中删除。

要这样做,您将需要第二次通过,并带有另一对嵌套循环...

最新更新