【发布时间】:2015-11-19 00:27:08
【问题描述】:
Java/Android 中是否存在允许添加唯一元素但用新的相同元素替换最旧元素的有序集合?例如,如果我的收藏是这样的:
["foo", "bar", "alice", "bob"]
我再次添加bar,想要的结果是:
["foo", "alice", "bob", "bar"]
此外,如果该集合允许弹出O(1) 中的最后一个元素,那就太好了。
编辑
目前对我来说听起来最好的解决方案是使用ArrayList,如下所示:
ArrayList<String> myArray = new ArrayList<>();
[...]
if(!myArray.contains(myString)) {
myArray.remove(myString);
}
myArray.add(myString);
【问题讨论】:
-
也许在再次添加之前删除元素,然后使用 ArrayList 或 Vector 达到相同的效果。
-
未排序仅排序正确..?
-
@Alatau: 是的,我知道,但是在最坏的情况下使用意味着
O(n)计算的 ArrayList,所以我想避免这种情况。 @user158037:看起来这并不能解决我的问题。 @ShekharKhairnar:是的,对……只订购了。
标签: java android arrays collections set