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