首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序HashSet

排序HashSet
EN

Stack Overflow用户
提问于 2013-02-23 15:48:59
回答 2查看 9.8K关注 0票数 2

我编写了一个在HashSet...here中插入数据的程序是代码

代码语言:javascript
复制
public class Person implements Comparable<Person>
{
    private int person_id;
    private String person_name;
    public Person(int person_id,String person_name)
    {
        this.person_id=person_id;
        this.person_name=person_name;
    }
    /* getter and setter method */
    public boolean equals(Object obj)
    {
        Person p=(Person)obj;
        if(!(p instanceof Person))
        {
            return false;
        }
        else if(this.person_id==p.person_id)
            return true;
        else
            return false;
    }
    @Override
    public int hashCode()
    {
        return person_id*6;
    }
    @Override
    public int compareTo(Person o)
    {
        if(this.person_id>o.person_id)
            return 1 ;
        else if(this.person_id<o.person_id)
            return -1;
        else return 0;
    }
}

我没有粘贴我在这些类中做的其他两个classes.All,它们是填充数据的,其他是主类。

现在我了解到,通过Java,我了解到在Collection class.Now中有一个名为sort()的方法,我的问题是排序方法获取列表。

这是文档排序(列表列表)的签名。我面临排序问题,.Somebody告诉我将hashset转换成TreeSet(其中一个线程中也提到了堆栈溢出)...Is,这是唯一的方法。

EN

回答 2

Stack Overflow用户

发布于 2013-02-23 15:50:49

这是唯一的办法。HashSet 从来没有被分类过。它不对您的项目进行任何排序,以换取containsaddremove操作的性能。

http://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html

该类实现了由哈希表(实际上是HashMap实例)支持的Set接口。--它不能保证集合的迭代顺序;特别是,它不能保证随着时间的推移,顺序将保持不变--。这个类允许空元素。

所以,只需使用TreeSet,它根据类的自然排序保持排序。我看到您的类实现了Comparable,这使得它很容易在TreeSet中使用。

票数 9
EN

Stack Overflow用户

发布于 2015-02-16 10:36:40

使用LinkedHashSet代替,因为它以排序的方式插入元素,所以集合总是排序的。

请参阅http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashSet.html更多信息:

哈希表和链表实现的集合接口,具有可预测的迭代顺序。此实现与HashSet不同的是,它维护一个通过其所有条目运行的双链接列表。这个链表定义了迭代顺序,这是元素被插入到集合中的顺序(插入顺序)。注意,如果一个元素被重新插入到集合中,插入顺序不会受到影响。(如果调用s.add(e)时,s.contains(e)将在调用之前返回true,则将元素e重新插入到集合中。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15042360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档