English 中文(简体)
如何在贾瓦实施树苗?
原标题:How to implement a TreeSet in Java?
  • 时间:2012-04-12 06:14:51
  •  标签:
  • java

采用按年龄分类的树苗,但如果一个人的名字平等,则不会在树苗中拯救一个人。 我采用平等法和洗衣法,但即使有相同的名称,这套法典将拯救所有人。 我不知道为什么。

public class Person implements Comparable<Person>{
    private String name;
    private int age;

    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }

    @Override
    public int compareTo(Person o) {
        if(this.getAge()<o.getAge()){
            return -1;
        }
        return this.getAge() == o.getAge()?0:1;
    }

    @Override
    public boolean equals(Object object){
        return name.equals(((Person)object).getName());
    }

    @Override
    public int hashCode(){
        return name.hashCode();
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }

    public static void main(String[] args){
        Set<Person> set = new TreeSet<Person>();
        set.add(new Person("Jack",30));
        set.add(new Person("Jack",20));
        System.out.println(set);
    }
}
最佳回答

你可以补充

if(name.equals(o.getName())) {
    return 0;
}

in the beginning of your compareTo() function. That way TreeSet can assume a.equals(b) is equivalent to a.compareTo(b) == 0 and you still get the ordering by age as all names in the set are different.

问题回答

你可以这样做。 平等与比较 必须做“同样的事情”。 相比之下,如果返回情况相同,情况就是这样。 反之亦然。

我从实施<代码>TreeSet中了解到,它只能包含独特的内容。 为在<代码>TreeSet中储存这些内容,将compare>/em>采用<代码>compareTo(>方法后现有的新内容。

你们的法典目前是这样说的:Person按姓名平等,但只有按年龄、年龄、年龄、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、出生、

我建议你要么修改<代码>等值,compareTo()hashCode()'方法,以考虑到姓名和年龄。

逐年分类如下:





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...