下面的代码有什么作用?可以LinkedHashSet
用a代替HashSet
吗?
public class CollectionFunction {
public <E> List<E> function(List<E> list) {
return new ArrayList<E>(new LinkedHashSet<E>(list));
}
}
下面的代码有什么作用?可以LinkedHashSet
用a代替HashSet
吗?
public class CollectionFunction {
public <E> List<E> function(List<E> list) {
return new ArrayList<E>(new LinkedHashSet<E>(list));
}
}
下面的代码有什么作用?
似乎它用于从列表中删除重复项而不更改顺序
LinkedHashSet 可以用 HashSet 代替吗?
不,它不会保证订单(#2)
Set 是项目的无序集合,其中列表必须保留所包含项目的顺序。您不能使用集合HashSet
来实现列表,因为不存储项目的顺序。链接的哈希集存储这些信息。
此功能正在删除重复元素并保持插入顺序。
如果您提供a,b,c,d,a
输入,您将获得a,b,c,d
输出。
是的你可以
如果您不想要插入顺序,请将 LinkedHashSet 替换为 HashSet。
b,c,d,a
如果将 LinkedhashSet 替换为 HashSet,输出可能是这样的
它从实现 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 满足这两个要求,您可以替换它:-)。