Java Programming: There is an error in the code so make sure to fix it:   OrderedMergeIterator.java   import java.util.Iterator; import java.util.Map; import java.util.PriorityQueue; import java.util.Queue; public class OrderedMergeIterator> implements Iterator { private Queue>> queue; public OrderedMergeIterator(Iterator... iterators) { queue = new PriorityQueue<>((entry1, entry2) -> entry1.getKey().compareTo(entry2.getKey())); for (Iterator iterator : iterators) { if (iterator.hasNext()) { DataElement element = iterator.next(); queue.add(Map.entry(element, iterator)); } } } @Override public boolean hasNext() { return !queue.isEmpty(); } @Override public DataElement next() { if (hasNext()) { Map.Entry> entry = queue.poll(); DataElement element = entry.getKey(); Iterator iterator = entry.getValue(); if (iterator.hasNext()) { DataElement nextElement = iterator.next(); queue.add(Map.entry(nextElement, iterator)); } return element; } throw new RuntimeException("No more elements in the merge iterator"); } } Attached is an image of the errors:

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Java Programming: There is an error in the code so make sure to fix it:

 

OrderedMergeIterator.java

 

import java.util.Iterator;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Queue;

public class OrderedMergeIterator<DataElement extends Comparable<? super DataElement>> implements Iterator<DataElement> {
private Queue<Map.Entry<DataElement, Iterator<DataElement>>> queue;

public OrderedMergeIterator(Iterator<DataElement>... iterators) {
queue = new PriorityQueue<>((entry1, entry2) -> entry1.getKey().compareTo(entry2.getKey()));

for (Iterator<DataElement> iterator : iterators) {
if (iterator.hasNext()) {
DataElement element = iterator.next();
queue.add(Map.entry(element, iterator));
}
}
}

@Override
public boolean hasNext() {
return !queue.isEmpty();
}

@Override
public DataElement next() {
if (hasNext()) {
Map.Entry<DataElement, Iterator<DataElement>> entry = queue.poll();
DataElement element = entry.getKey();
Iterator<DataElement> iterator = entry.getValue();

if (iterator.hasNext()) {
DataElement nextElement = iterator.next();
queue.add(Map.entry(nextElement, iterator));
}

return element;
}

throw new RuntimeException("No more elements in the merge iterator");
}
}

Attached is an image of the errors:

 

110
12
13
14
15
16
17
18
19
20
21
220
423
24
25
26
270
-28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44}
45
public Ordered MergeIterator (Iterator<Data Element>... iterators) {
queue = new PriorityQueue<> ((entry1, entry2) -> entry1.getKey().compareTo(entry2.getKey()));
}
}
for (Iterator<Data Element> iterator: iterators) {
if (iterator.hasNext()) {
Data Element element
iterator.next();
queue.add(Map.entry(element, iterator));
}
@Override
public boolean hasNext() {
return !queue.isEmpty();
}
}
@Override
public Data Element next() {
if (hasNext()) {
}
Map.Entry<Data Element, Iterator<DataElement>> entry = queue.poll();
Data Element element = entry.getKey();
Iterator<DataElement> iterator = entry.getValue();
if (iterator.hasNext()) {
Data Element nextElement = iterator.next();
queue.add(Map entry nextElement, iterator));
}
return element;
throw new RuntimeException ("No more elements in the merge iterator");
Transcribed Image Text:110 12 13 14 15 16 17 18 19 20 21 220 423 24 25 26 270 -28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44} 45 public Ordered MergeIterator (Iterator<Data Element>... iterators) { queue = new PriorityQueue<> ((entry1, entry2) -> entry1.getKey().compareTo(entry2.getKey())); } } for (Iterator<Data Element> iterator: iterators) { if (iterator.hasNext()) { Data Element element iterator.next(); queue.add(Map.entry(element, iterator)); } @Override public boolean hasNext() { return !queue.isEmpty(); } } @Override public Data Element next() { if (hasNext()) { } Map.Entry<Data Element, Iterator<DataElement>> entry = queue.poll(); Data Element element = entry.getKey(); Iterator<DataElement> iterator = entry.getValue(); if (iterator.hasNext()) { Data Element nextElement = iterator.next(); queue.add(Map entry nextElement, iterator)); } return element; throw new RuntimeException ("No more elements in the merge iterator");
Expert Solution
steps

Step by step

Solved in 4 steps with 3 images

Blurred answer
Knowledge Booster
Stack
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education