Class: Concurrent::Collection::JavaNonConcurrentPriorityQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/concurrent/collection/java_non_concurrent_priority_queue.rb

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (JavaNonConcurrentPriorityQueue) initialize(opts = {})

Returns a new instance of JavaNonConcurrentPriorityQueue



14
15
16
17
18
19
20
21
# File 'lib/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

Class Method Details

+ (NonConcurrentPriorityQueue) from_list(list, opts = {})

Create a new priority queue from the given list.

Parameters:

  • list (Enumerable)

    the list to build the queue from

  • opts (Hash) (defaults to: {})

    the options for creating the queue

Returns:

  • (NonConcurrentPriorityQueue)

    the newly created and populated queue



76
77
78
79
80
# File 'lib/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

Instance Method Details

- (undocumented) clear



24
25
26
27
# File 'lib/concurrent/collection/java_non_concurrent_priority_queue.rb', line 24

def clear
  @queue.clear
  true
end

- (undocumented) delete(item)



30
31
32
33
34
35
36
# File 'lib/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

- (Boolean) empty?

Returns:

  • (Boolean)


39
40
41
# File 'lib/concurrent/collection/java_non_concurrent_priority_queue.rb', line 39

def empty?
  @queue.size == 0
end

- (Boolean) include?(item) Also known as: has_priority?

Returns:

  • (Boolean)


44
45
46
# File 'lib/concurrent/collection/java_non_concurrent_priority_queue.rb', line 44

def include?(item)
  @queue.contains(item)
end

- (undocumented) length Also known as: size



50
51
52
# File 'lib/concurrent/collection/java_non_concurrent_priority_queue.rb', line 50

def length
  @queue.size
end

- (undocumented) peek



56
57
58
# File 'lib/concurrent/collection/java_non_concurrent_priority_queue.rb', line 56

def peek
  @queue.peek
end

- (undocumented) pop Also known as: deq, shift



61
62
63
# File 'lib/concurrent/collection/java_non_concurrent_priority_queue.rb', line 61

def pop
  @queue.poll
end

- (undocumented) push(item) Also known as: <<, enq

Raises:

  • (ArgumentError)


68
69
70
71
# File 'lib/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