如何将列表转换为队列以实现先进先出(FIFO)?

5

请考虑以下内容:

public List<Place> getAllInactivePlaces() {

    return this.placeDAO.findAllUnApprovedList();
}

我上面展示的方法是找到所有位置。我需要将队列转换为FIFO。

类似于这样:

Queue<Place>placeQueue = getAllInactivePlaces();

这意味着placeDAO.findAllUnApprovedList()需要更改其返回类型以匹配Queue的类型。 - Makoto
首先获取地点列表,然后将所有地点放入队列中,最后返回该队列。 - Xing Fei
1
@user3318622,要求答案并不能帮助你得到太多帮助。你需要先展示出自己已经尝试过寻找解决方案了。 - SimonC
2个回答

21

假设您目前拥有的是一个不是队列的列表(例如一个ArrayList)。进一步假设您无法选择适合您用例的数据结构作为起点:

Queue<Place> queue = new LinkedList<>(yourList);

@Thufir 它对我有效。你确定你没有试图将 ArrayList 强制转换为 Queue 吗?你必须先将其实际复制到 LinkedList(实现了 Queue 接口)。 - Aurand
啊,那可能就是它了。 - Thufir

0
“实现FIFO”不仅仅是使用的数据结构的问题,更多的是与从该结构中放入/取出数据的代码有关。
您需要更新调用代码,以便使用队列接口而不是列表。

它给出了 java.util.ArrayList 无法转换为 java.util.Queue。 - user3318622
是的,您需要更新代码,不再使用List和ArrayList。 - Thilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接