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