gpt4 book ai didi

java - 如何删除列表中的重复项并将列表复制到另一个列表中

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:07 24 4
gpt4 key购买 nike

我有一个项目列表,需要删除重复的项目,然后将该列表复制到另一个列表中。问题是我无法将列表复制到另一个列表中。

代码

    .....
private List mylist = new ArrayList();
.....

LinkedHashSet hs = new LinkedHashSet();
hs.addAll(mylist);
mylist.clear();
mylist.addAll(hs);

MyClass.getItems().clear();
MyClass.setItems(mylist);

MyClass.java

  .....
private List Items = new ArrayList();

public void setItems(List myItems) {
for (int i = 0; i < myItems.size(); i++) { <<This loop shows the items
System.out.println(myItems.get(i));
}
this.Items.clear();
this.Items.addAll(myItems);
for (int i = 0; i < Items.size(); i++) { << this loop does not show anything
System.out.println(Items.get(i));
}
}

期望的结果

mylist  >> a,b,c,a,d,c
change to a,b,c,d
then copy to items
items >> a,b,c,d

最佳答案

您可以使用LinkedHashSet 。这将保留插入顺序并确保不重复。

对于第二个问题,您是否向列表中添加了任何内容。您拥有的代码有效

List<Integer> mylist = new ArrayList<Integer>();
mylist.add(3);
mylist.add(3);


HashSet hs = new HashSet();
hs.addAll(mylist);
mylist.clear();
mylist.addAll(hs);

System.out.println(mylist.size()); //prints 1
System.out.println(hs.size());// prints 1

对已编辑问题的答复:

他们似乎都很好地打印了列表

public class Tmp {  

private List<Integer> Items = new ArrayList<Integer>();

public void setItems(List<Integer> myItems) {
for (int i = 0; i < myItems.size(); i++) { //<<This loop shows the items
System.out.println(myItems.get(i));
}
this.Items.clear();
this.Items.addAll(myItems);
System.out.println();
for (int i = 0; i < Items.size(); i++) { //<< this loop also shows the item
System.out.println(Items.get(i));
}
}
public static void main(String[] args) {
Tmp t = new Tmp();
List<Integer> myList = new ArrayList<Integer>();
myList.add(3);
myList.add(4);

t.setItems(myList);


}

}

这两段代码是否在同一个类中,并且两个列表变量都指向同一个 arrayList 实例。如果这样的话,对一个变量调用clear会清除两个列表(因为两个变量都指向同一个列表)

关于java - 如何删除列表中的重复项并将列表复制到另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com