具有push/pop且无重复项的Java数据结构?
我正在寻找Java中的队列类型数据结构(最好是在标准libs中),它具有以下属性:具有push/pop且无重复项的Java数据结构?,java,data-structures,set,queue,Java,Data Structures,Set,Queue,我正在寻找Java中的队列类型数据结构(最好是在标准libs中),它具有以下属性: 我可以向结构中添加元素(推送) 我可以从结构中删除任意元素,而无需指定哪个元素,如队列的remove()操作。显然,如果结构为空,则此操作将失败 如果我将一个元素添加到已经在其中的结构中,它不会被添加两次 保留插入/删除的顺序并不十分重要 Set结构具有无重复项,但不具有pop操作,Queue结构不保证无重复项。有适合我需要的东西存在吗 为了避免XY问题,我正在做一个工作列表算法:需要更新的节点被添加到集合中
- 我可以向结构中添加元素(推送)
- 我可以从结构中删除任意元素,而无需指定哪个元素,如队列的
操作。显然,如果结构为空,则此操作将失败remove()
- 如果我将一个元素添加到已经在其中的结构中,它不会被添加两次
Set
结构具有无重复项,但不具有pop
操作,Queue
结构不保证无重复项。有适合我需要的东西存在吗
为了避免XY问题,我正在做一个工作列表算法:需要更新的节点被添加到集合中,因此我想轻松弹出下一个需要更新的节点,并添加需要更新的节点,如果它们已经在工作列表中,则无需获得一堆重复的节点。使用
LinkedHashSet
,并根据需要执行pop
Iterator<E> iterator = set.iterator();
E result = iterator.next();
iterator.remove();
Iterator Iterator=set.Iterator();
E result=iterator.next();
iterator.remove();
使用LinkedHashSet
,并将pop
实现为
Iterator<E> iterator = set.iterator();
E result = iterator.next();
iterator.remove();
Iterator Iterator=set.Iterator();
E result=iterator.next();
iterator.remove();
您可以使用集合的迭代器删除单个元素。排序将取决于集合实现
static <T> T remove(Set<T> set) {
Iterator<T> iter = set.iterator();
T element = iter.next();
iter.remove();
return element;
}
static T remove(设置){
迭代器iter=set.Iterator();
T元素=iter.next();
iter.remove();
返回元素;
}
您可以使用集合的迭代器删除单个元素。排序将取决于集合实现
static <T> T remove(Set<T> set) {
Iterator<T> iter = set.iterator();
T element = iter.next();
iter.remove();
return element;
}
static T remove(设置){
迭代器iter=set.Iterator();
T元素=iter.next();
iter.remove();
返回元素;
}
也许你的意思是迭代器.next()
和迭代器.remove()代码>?捕捉良好,已修复。可能您指的是iterator.next()
和迭代器.remove()代码>?捕捉良好,已修复。看起来像同一个问题:@Golionko类似。此问题没有订购要求。看起来是同一个问题:@Golionko-similor。此问题没有订购要求。