List的实现既是Set a List(序列)?
我正在扩展 LinkedList 并实现 Set,这样我就有了一个没有重复项的列表。我想知道这样的实现是否还不存在?
我计划做的就是重写 add(e)
方法来首先查找该元素,如果存在,则不添加它。像这样的东西:
add(E){
if(get(E) == null) super.add(E);
}
I'm in the position of extending LinkedList and implement Set, so that I have a list with no duplicates. I'm wondering if such an implementation doesn't exist already?
All I'm planning to do is to override the add(e)
method to first look-up the element, and if present don't add it. Something like:
add(E){
if(get(E) == null) super.add(E);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
标准集合中不存在 Java 实现。
但是,您可以从以下位置查看 SetUniqueList 常见集合可能符合您正在寻找的内容。
No Java implementation exists in the standard collections.
However, you can take a look at SetUniqueList from the Common Collections which may be along the lines of what you are looking for.
也许 LinkedHashSet 可以满足您的需求。它使元素保持(默认)插入顺序。
不可能同时实现两个接口(至少如果您想遵循 List 和 Set 的规范),因为 hashCode 定义存在冲突。
与
Maybe LinkedHashSet does what you want. It keeps elements in (by default) insertion order.
It is not possible to implement both interfaces at the same time (at least if you want to follow the specifications for List and Set), because the hashCode definitions conflict.
versus