You need to enable JavaScript to run this app. Java中是否存在用于创建队列的静态工厂方法?
优惠活动
大模型
产品
解决方案
定价
更多

Java中是否存在用于创建队列的静态工厂方法?

Java队列静态工厂方法相关问题解答

Java标准库目前没有内置和List.of、Arrays.asList完全对等的队列/双端队列静态工厂方法,你现在使用的new LinkedList<>(Arrays.asList(elements))是符合标准库规范的可行实现,除此之外不同场景还有以下可选方案:

JDK 8及更早版本实现

  • 常规可变队列/双端队列写法:
    // 队列实现
    Queue<String> queue = new LinkedList<>(Arrays.asList("元素1", "元素2", "元素3"));
    // 双端队列实现
    Deque<String> deque = new LinkedList<>(Arrays.asList("元素1", "元素2", "元素3"));
    
    该方案生成的集合支持正常增删操作,适用于大多数业务场景。
  • 不可变队列实现:
    如需禁止队列修改,可用Collections.unmodifiableQueue做一层包装:
    Queue<String> immutableQueue = Collections.unmodifiableQueue(new LinkedList<>(Arrays.asList("元素1", "元素2", "元素3")));
    

JDK 9及更高版本优化写法

JDK 9引入了List.of静态工厂,可以替换Arrays.asList减少开销,同时优先选择性能更优的ArrayDeque作为队列实现:

// 可变队列
Queue<String> queue = new ArrayDeque<>(List.of("元素1", "元素2", "元素3"));
// 可变双端队列
Deque<String> deque = new ArrayDeque<>(List.of("元素1", "元素2", "元素3"));

第三方库简化写法

如果项目允许引入第三方工具库,Guava提供了完全对等的便捷静态工厂方法:

// 生成不可变队列
Queue<String> immutableQueue = ImmutableQueue.of("元素1", "元素2", "元素3");
// 生成不可变双端队列
Deque<String> immutableDeque = ImmutableDeque.of("元素1", "元素2", "元素3");
// 生成可变ArrayDeque队列
Queue<String> mutableQueue = Queues.newArrayDeque(List.of("元素1", "元素2", "元素3"));

内容的提问来源于stack exchange,提问作者Volodya Lombrozo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 22:45:03