当前是否在for循环中处理元素,即队列的头部?
private Queue<User> users = new ConcurrentLinkedQueue<User>();
for(User u : users){
users.remove(); // <- is this removing the currently iterated element?
}
或者在这里使用 users.remove(u)
?
答案 0 :(得分:2)
是的,这对ConcurrentLinkedQueue<E>
来说是正确的,因为它按FIFO顺序对元素进行排序。
来自 docs :
此队列命令元素FIFO(先进先出)。的头 queue是队列中最长时间的元素。该 队列的尾部是已经在队列中的元素 最短的时间。