From: Arthi J on
public class Drink implements Comparable {
public String address;
public String name;

public int compareTo(Object o) {
return 1;
}
}

import java.util.*;
public class testClass
{
public static void main(String args[])
{
Drink one = new Drink();
Drink two = new Drink();
one.address = "b";
two.address = "a";
one.name= "Coffee";
two.name= "Tea";

TreeSet set = new TreeSet();
set.add(one);
set.add(two);
Iterator it = set.iterator();
while(it.hasNext())
{
Drink temp = (Drink) it.next();
System.out.println(temp.name);
System.out.println(temp.address);
}
}
}

Output:
-----------
Coffee
b
Tea
a
----------
Why is it that sorting occurs only based on 'Name' string here and not
on 'Address' string when inserted into TreeSet?
From: markspace on
Arthi J wrote:
> Why is it that sorting occurs only based on 'Name' string here and not
> on 'Address' string when inserted into TreeSet?


I don't think that's what's occuring at all.


> public class Drink implements Comparable {
> public String address;
> public String name;
>
> public int compareTo(Object o) {
> return 1;
> }
> }


Is this a homework question? Look at this method again and tell me what
the sorting is based on.
From: Tom Anderson on
On Tue, 15 Jun 2010, Arthi J wrote:

> public class Drink implements Comparable {
> public String address;
> public String name;
>
> public int compareTo(Object o) {
> return 1;
> }
> }
>
> import java.util.*;
> public class testClass
> {
> public static void main(String args[])
> {
> Drink one = new Drink();
> Drink two = new Drink();
> one.address = "b";
> two.address = "a";
> one.name= "Coffee";
> two.name= "Tea";
>
> TreeSet set = new TreeSet();
> set.add(one);
> set.add(two);
> Iterator it = set.iterator();
> while(it.hasNext())
> {
> Drink temp = (Drink) it.next();
> System.out.println(temp.name);
> System.out.println(temp.address);
> }
> }
> }
>
> Output:
> -----------
> Coffee
> b
> Tea
> a
> ----------
> Why is it that sorting occurs only based on 'Name' string here and not
> on 'Address' string when inserted into TreeSet?

You're kidding, right?

tom

--
In the long run, we are all dead. -- John Maynard Keynes
From: Lew on
On 06/16/2010 12:39 AM, Arthi J wrote:
> public class Drink implements Comparable {

Comparable<what?>

> public String address;
> public String name;
>
> public int compareTo(Object o) {
> return 1;

Where's the "compare" in "compareTo()"? I don't see any comparison.

By the way, where's your indentation?

> }
> }
>
> import java.util.*;
> public class testClass

Class names should begin with an upper-case letter.

> {
> public static void main(String args[])
> {
> Drink one = new Drink();
> Drink two = new Drink();
> one.address = "b";
> two.address = "a";
> one.name= "Coffee";
> two.name= "Tea";
>
> TreeSet set = new TreeSet();

TreeSet<what?>

> set.add(one);
> set.add(two);
> Iterator it = set.iterator();

Iterator<what?>

> while(it.hasNext())
> {
> Drink temp = (Drink) it.next();
> System.out.println(temp.name);
> System.out.println(temp.address);
> }
> }
> }
>
> Output:
> -----------
> Coffee
> b
> Tea
> a
> ----------
> Why is it that sorting occurs only based on 'Name' string here and not
> on 'Address' string when inserted into TreeSet?

"compareTo()" is supposed to compare to something. ("what?")

You forgot your generics.

Your indentation is inconsistent and irregular and not standard.

--
Lew
From: Daniel Pitts on
On 6/15/2010 9:39 PM, Arthi J wrote:
> Why is it that sorting occurs only based on 'Name' string here and not
> on 'Address' string when inserted into TreeSet?

Because your teacher is failing at his/her job and your book is out of
date. I suggest replacing both as soon as possible. If you can not
replace your instructor, at least supplement the book with a recent one
explaining Java.


--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>