/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone {
private PriorityQueue<Node<Integer>> maxPriorityQueue;
// this will fail to compile because fo bounds (non implementing Compatable)
//private PriorityQueue<NonComparable> ncPriorityQueue;
}
public Ideone() {
maxPriorityQueue = new PriorityQueue<>();
Node<String> sNode = new Node<>("test");
Node<Integer> iNode = new Node<>(7);
maxPriorityQueue.add(iNode);
//this will fail to compile because of node type parameter
//maxPriorityQueue.add(sNode);
}
}
class NonComparable {}
class Node<T> implements Comparable<Node<T>> {
private T info;
private Node next;
private Node previous;
public Node(T payload) {
info = payload;
}
public int compareTo(Node<T> other) {
return 0;
}
}
class PriorityQueue<Item extends Comparable<Item>> implements Iterable<Item> {
private List<Item> list = new ArrayList<>();
public Iterator<Item> iterator() {
return null;
}
public void add(Item item) {
list.add(item);
}
}