以下代码有什么作用? LinkedHashSet
可以替换为HashSet
吗?
public class CollectionFunction {
public <E> List<E> function(List<E> list) {
return new ArrayList<E>(new LinkedHashSet<E>(list));
}
}
答案 0 :(得分:7)
以下代码有何作用?
似乎它用于从列表中删除重复项而不更改顺序
LinkedHashSet可以用HashSet替换吗?
不,它不会保证订单(#2)
答案 1 :(得分:1)
Set是一个无序的项集合,其中列表必须保留所包含项的顺序。您不能使用HashSet
之类的集合来实现列表,因为不会存储项目的顺序。链接的哈希集存储这些信息。
答案 2 :(得分:1)
此功能正在删除重复元素并保持插入顺序。
如果您输入a,b,c,d,a
作为输入,则会输出a,b,c,d
。
是的,你可以
如果您不想插入,请使用HashSet替换LinkedHashSet 顺序。
如果将LinkedhashSet替换为HashSet
,则输出可能类似于此b,c,d,a
答案 3 :(得分:-3)
它从实现List接口的对象中创建一个ArrayList。 ArrayList类有一个构造函数,它接受一个Collection: http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html 您还必须查找HashSet是否也实现了Collection http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html。 您还必须查找HashSet是否提供相应的构造函数。由于HashSet满足这两个要求,您可以替换它: - )。