It is possible to have those 3 types of Object in the same TreeSet. Strings, MyOwnClass and Integers.
ts.add(new Integer(1).toString()) is not the way! Take a better look at the TreeSet constructor... - Halli 2009/9/13 Hiran Dias <[email protected]> > > HI, > > Is it possible to do the homework like this: > > ts.add(new Integer(1).toString()); > > > Not sure whether it is agree to the homeworks expectation of "Add Integer > Object". > > > Thanks & Regards, > Hiran > > > > > > On Sat, Sep 12, 2009 at 7:28 PM, Deyan Pavlov <[email protected]>wrote: > >> *thanks for the idea, it seems to work.* >> ** >> *about Integer class, I haven't been able to add it to the tree. I guess >> for the time being this homework will have to wait.* >> >> >> ----- Original Message ----- >> *From:* Hallgrímur Njálsson <[email protected]> >> *To:* [email protected] >> *Sent:* Saturday, September 12, 2009 3:54 PM >> *Subject:* Re: [java programming] Java Collections Framework - lab 1008; >> TreeSet >> >> >> I have figured out this part of the homework... >> >> You have to write your "MyOwnClass" so it implements Comparable >> >> I did it like this... >> >> class MyOwnClass extends Object implements Comparable { >> . >> . >> . >> >> Then you have to implement the method compareTo so it can compare >> MyOwnClass object to the calling object >> >> >> I include my compareTo method... >> >> public int compareTo(Object o) { >> return (this.toString().compareTo(o.toString())); >> } >> >> Hope this will help you. >> >> I am still having problem comparing the Integer object to the String and >> MyOwnClass Objects... Have you figured that out yet? >> >> My regards >> -Halli >> >> >> 2009/9/12 Deyan Pavlov <[email protected]> >> >> *if you mean:* >>> ** >>> ** >>> * TreeSet<Object> ts = new TreeSet<Object>();* >>> >>> * ts.add("one") ; >>> ts.add("two") ;* >>> >>> * MyOwnClass obj1 = new MyOwnClass( ); >>> >>> ts.add(obj1) ;* >>> ** >>> *this still has the same error *ClassCastException >>> >>> *Maybe another idea?* >>> >>> >>> ----- Original Message ----- >>> *From:* Zahari Palazov <[email protected]> >>> *To:* [email protected] >>> *Cc:* [email protected] >>> *Sent:* Friday, September 11, 2009 7:26 PM >>> *Subject:* Re: [java programming] Re: Java Collections Framework - lab >>> 1008; TreeSet >>> >>> *TreeSet<Object> ts = new TreeSet<Object>(); >>> try with this >>> * >>> On Fri, Sep 11, 2009 at 6:48 PM, Deyan Pavlov <[email protected]>wrote: >>> >>>> >>>> Hi, >>>> I understand Treeset is a collection of elements that are comparable. >>>> But the homework is to put in this collection String, Integer and >>>> MyOwnClass >>>> objects, so three very different types. >>>> >>>> I think that so far there hasn't been any idea in previous lessons about >>>> how >>>> to put all these things together in one group. >>>> >>>> So far I have solved all homeworks completely on my own but now this >>>> seems >>>> to be a bit out of boundary exception for me. >>>> >>>> Any practical idea how to put these objects together? >>>> >>>> Thanks in advance!! >>>> >>>> >>>> ----- Original Message ----- >>>> From: "Ashok A V" <[email protected]> >>>> To: <[email protected]> >>>> Cc: "Free Java Programming Online Training Course By Sang Shin" >>>> <[email protected]> >>>> Sent: Friday, September 11, 2009 9:45 AM >>>> Subject: Re: [java programming] Java Collections Framework - lab 1008; >>>> TreeSet >>>> >>>> >>>> Hi , >>>> >>>> TreeSet is the Set which actually sorts your added items. >>>> So now the confusion happens when you add objects of different types. >>>> Say first you add two Strings : >>>> >>>> ts.add("one") ; >>>> ts.add("two") ; >>>> >>>> Then you add three Integers : >>>> >>>> ts.add(new Integer(1)) ; >>>> ts.add(new Integer(2)) ; >>>> ts.add(new Integer(3)) ; >>>> >>>> And finally you add MyOwnClass object to the set >>>> >>>> MyOwnClass obj1 = new MyOwnClass( ); >>>> ts.add(obj1) ; >>>> >>>> Now remember Tree Set is a collection that sorts the objects in your >>>> Set collection. >>>> >>>> public TreeSet() >>>> >>>> Constructs a new, empty set, sorted according to the elements' natural >>>> order. All elements inserted into the set must implement the >>>> Comparable interface. Furthermore, all such elements must be mutually >>>> comparable: e1.compareTo(e2) must not throw a ClassCastException for >>>> any elements e1 and e2 in the set. If the user attempts to add an >>>> element to the set that violates this constraint (for example, the >>>> user attempts to add a string element to a set whose elements are >>>> integers), the add(Object) call will throw a ClassCastException. >>>> >>>> So if you added only string then String Class implements Comparable >>>> interface which has a compareTo() method. So Sorting of strings is >>>> possible.The problem occurs when it comes to the integer objects , the >>>> string class is not able to cast it and it fails saying that : >>>> >>>> Exception in thread "main" java.lang.ClassCastException: >>>> java.lang.String cannot be cast to java.lang.Integer >>>> >>>> So if you plan to use TreeSet see to that you add the same kind of >>>> objects which are sortable by a compareTo() method >>>> >>>> For more reading : >>>> http://java.sun.com/j2se/1.4.2/docs/api/java/util/TreeSet.html >>>> >>>> Thanks, >>>> Ashok A V >>>> >>>> On Fri, Sep 11, 2009 at 1:17 AM, Deyan Pavlov <[email protected]> >>>> wrote: >>>> > Lab 1008, 2.4 homework - TreeSet iterator: >>>> > >>>> > import java.util.TreeSet; >>>> > import java.util.Iterator; >>>> > import java.util.*; >>>> > >>>> > public class Main { >>>> > >>>> > >>>> > public static void main(String[] args) { >>>> > // TODO code application logic here >>>> > TreeSet ts = new TreeSet(); >>>> > ts.add("one") ; >>>> > ts.add("two") ; >>>> > >>>> > // HERE comes the problem, trying to add the Integer(1), (2) and (3) >>>> > >>>> > ts.add(new Integer(1)) ; >>>> > ts.add(new Integer(2)) ; >>>> > ts.add(new Integer(3)) ; >>>> > >>>> > MyOwnClass obj1 = new MyOwnClass( ); >>>> > ts.add(obj1) ; >>>> > >>>> > } >>>> > } >>>> > Result is: >>>> > Exception in thread "main" java.lang.ClassCastException: >>>> java.lang.String >>>> > cannot be cast to java.lang.Integer >>>> > at java.lang.Integer.compareTo(Integer.java:35) >>>> > at java.util.TreeMap.put(TreeMap.java:545) >>>> > at java.util.TreeSet.add(TreeSet.java:238) >>>> > at mytreeset.Main.main(Main.java:21) >>>> > Java Result: 1 >>>> > >>>> ------------------------------------------------------------------------------------------- >>>> > >>>> > MyOwnClass obj1 = new MyOwnClass( ); >>>> > ts.add(obj1) ; >>>> > >>>> > If I add the two rows above, adding the MyOwnClass obj1, which is >>>> properly >>>> > created in another file, >>>> > then comes an even longer list of errors that didn't happen when >>>> applying >>>> > this same method ADD() in LinkedList, ArrayList and HashSet >>>> > >>>> > Exception in thread "main" java.lang.NoClassDefFoundError: >>>> > mytreeset/MyOwnClass >>>> > at mytreeset.Main.main(Main.java:16) >>>> > Caused by: java.lang.ClassNotFoundException: mytreeset.MyOwnClass >>>> > at java.net.URLClassLoader$1.run(URLClassLoader.java:200) >>>> > at java.security.AccessController.doPrivileged(Native Method) >>>> > at java.net.URLClassLoader.findClass(URLClassLoader.java:188) >>>> > at java.lang.ClassLoader.loadClass(ClassLoader.java:307) >>>> > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) >>>> > at java.lang.ClassLoader.loadClass(ClassLoader.java:252) >>>> > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) >>>> > >>>> > >>>> > Why can't I add objects to the TreeSet, while I could add them with >>>> not >>>> > exceptions in the case of LinkedList, ArrayList and HashSet ? >>>> > >>>> > Thank you!! >>>> > > >>>> > >>>> >>>> >>>> >>>> -- >>>> Victory belongs to the most persevering. >>>> - Napoleon >>>> >>>> > > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaprogrammingwithpassion?hl=en -~----------~----~----~----~------~----~------~--~---
