class Concurrent::Collection::JavaNonConcurrentPriorityQueue

@!macro priority_queue

@!visibility private @!macro internal_implementation_note

Public Class Methods

from_list(list, opts = {}) click to toggle source

@!macro priority_queue_method_from_list

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 76
def self.from_list(list, opts = {})
  queue = new(opts)
  list.each{|item| queue << item }
  queue
end
new(opts = {}) click to toggle source

@!macro priority_queue_method_initialize

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 14
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

Public Instance Methods

<<(item)
Alias for: push
clear() click to toggle source

@!macro priority_queue_method_clear

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 24
def clear
  @queue.clear
  true
end
delete(item) click to toggle source

@!macro priority_queue_method_delete

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 30
def delete(item)
  found = false
  while @queue.remove(item) do
    found = true
  end
  found
end
deq()
Alias for: pop
empty?() click to toggle source

@!macro priority_queue_method_empty

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 39
def empty?
  @queue.size == 0
end
enq(item)
Alias for: push
has_priority?(item)
Alias for: include?
include?(item) click to toggle source

@!macro priority_queue_method_include

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 44
def include?(item)
  @queue.contains(item)
end
Also aliased as: has_priority?
length() click to toggle source

@!macro priority_queue_method_length

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 50
def length
  @queue.size
end
Also aliased as: size
peek() click to toggle source

@!macro priority_queue_method_peek

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 56
def peek
  @queue.peek
end
pop() click to toggle source

@!macro priority_queue_method_pop

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 61
def pop
  @queue.poll
end
Also aliased as: deq, shift
push(item) click to toggle source

@!macro priority_queue_method_push

# File lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb, line 68
def push(item)
  raise ArgumentError.new('cannot enqueue nil') if item.nil?
  @queue.add(item)
end
Also aliased as: <<, enq
shift()
Alias for: pop
size()
Alias for: length