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
-~----------~----~----~----~------~----~------~--~---

Reply via email to