gpt4 book ai didi

java - 谁能解释一下它是如何工作的,而没有按排序顺序重复?

转载 作者:行者123 更新时间:2023-12-02 14:11:35 24 4
gpt4 key购买 nike

我的列表中有重复的数据,我知道 Set 不允许重复,LinkedHashSet 会给出排序顺序,它在内部会如何工作,有人可以解释一下吗?

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;

public class RemoveDuplicate {
public static void main(String[] args) {
List<String> sourceList = new ArrayList<String>();

sourceList.add("object1");
sourceList.add("object2");
sourceList.add("object2");
sourceList.add("object3");
sourceList.add("object4");
sourceList.add("object2");

List<String> newList = new ArrayList<String>(new LinkedHashSet<String>(
sourceList));
Iterator<String> it = newList.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}

}
}

上面的代码显示列表没有重复并且有排序顺序。LinkedHashSet 内部如何工作有人能解释一下吗?

最佳答案

LinkedHashSet 扩展 HashSet。查看HashSet源码herehere

HashSet uses the internal map to store your value as key, and if key is already exist(means you value already in set) then the call leaves the set unchanged and returns false.

请参阅 HashSet 中的以下代码:

public boolean add(E e) {
return map.put(e, PRESENT)==null;
}

关于java - 谁能解释一下它是如何工作的,而没有按排序顺序重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792138/

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