Java Bound Mismatch Error - LinkedList -
ok interface i'm using.
/* instance of classes realize interface can compared */ public interface comparable<e> { /* method compare object argument object * @param obj - argument object * @return - returns negative integer if object < obj */ int compareto(e obj);
}
then ordered list class.
import java.util.*; /* class represent ordered list. data stored * in linked list data field */ public class orderedlist<e extends comparable<e>> implements iterable<e> { /* linked list contain data */ private linkedlist<e> thelist = new linkedlist<e>(); /* insert obj list preserving lists order * @param pre - items in list ordered * @param post - obj has been inserted list such * items still in order */ public void add(e obj) { listiterator<e> iter = thelist.listiterator(); // find insertion position , insert while(iter.hasnext()) { if(obj.compareto(iter.next()) < 0) { // iterator has stepped on first element // greater element inserted // move iterator 1 iter.previous(); // insert element iter.add(obj); //exit loop , return return; } } /* assert - items examined , no item larger * element inserted * add new item end of list */ iter.add(obj); } /* returns element @ specified position */ public e get(int index) { return thelist.get(index); } /* returns iterator ordered list */ public iterator<e> iterator() { return thelist.iterator(); } /* returns size of list */ public int size() { return thelist.size(); } }
and test class problems are.
import java.util.*; public class testorderedlist { /* traverses ordered list , displays each element * displays , error message if element out of order * @param testlist - ordered list of integers */ public static void traverseandshow(orderedlist<integer> testlist) { int previtem = testlist.get(0); /* traverse ordered list , display value * out of order */ for(int thisitem : testlist) { system.out.println(thisitem); if(previtem > thisitem) system.out.println("***failed, value " + thisitem); previtem = thisitem; } } public static void main(string[] args) { orderedlist<integer> testlist = new orderedlist<integer>(); final int max_int = 500; final int start_size = 100; // create random generator random random = new random(); for(int = 0; < start_size; i++) { int aninteger = random.nextint(max_int); testlist.add(aninteger); } //add beginning , end of list. testlist.add(-1); testlist.add(max_int + 1); traverseandshow(testlist); // traverse , display } }
i'm getting bound mismatch error when try use integer in test class. where's problem ?
you've defined own comparable
interface integer
not implement. remove custom interface build path built-in java.lang.comparable
can used instead
Comments
Post a Comment