class Concurrent::Collection::JavaNonConcurrentPriorityQueue
@!macro internal_implementation_note
@!visibility private
@!macro priority_queue
def self.from_list(list, opts = {})
def self.from_list(list, opts = {}) queue = new(opts) list.each{|item| queue << item } queue end
def clear
def clear @queue.clear true end
def delete(item)
def delete(item) found = false while @queue.remove(item) do found = true end found end
def empty?
def empty? @queue.size == 0 end
def include?(item)
def include?(item) @queue.contains(item) end
def initialize(opts = {})
def initialize(opts = {}) order = opts.fetch(:order, :max) if [:min, :low].include?(order) @queue = java.util.PriorityQueue.new(11) # 11 is the default initial capacity else @queue = java.util.PriorityQueue.new(11, java.util.Collections.reverseOrder()) end end
def length
def length @queue.size end
def peek
def peek @queue.peek end
def pop
def pop @queue.poll end
def push(item)
def push(item) raise ArgumentError.new('cannot enqueue nil') if item.nil? @queue.add(item) end