Android创建一个集合,在添加时自动对新项目进行排序

时间:2016-04-25 07:29:50

标签: android sorting collections priority-queue

嗨我有和模型TopStory的Android应用程序。我想创建一个TopStory(topStories)的集合,它按值(即时间)对项目进行排序。每当添加新项目时。新添加的项目将在正确的索引处(按值时间排序)(即:创建已经排序的集合,以便每当我们添加新项目时,它将自动插入到正确的位置)

这是我的模特

public class TopStory {
    private int id;
    private String title;
    private String author;
    private int score;
    private JSONArray kids;
    private long time;
    private String url;

    public TopStory() {
    }

    public TopStory(int id, String title, String author, int point, long time,String url) {
        this.id = id;
        this.title = title;
        this.author = author;
        this.score = point;
        this.time = time;
        this.url = url;
    }

我应该使用什么? PriorityQueue, TreeMap,...?如何创建该类型的集合?任何帮助都非常感激。感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用TreeMap数据结构http://developer.android.com/reference/java/util/TreeMap.html

了解它将如何为您服务,

http://www.java2novice.com/java-collections-and-util/treemap/comparator-user-object/

TreeMap<Empl,String> tm = new TreeMap<Empl, String>(new MyNameComp());

tm.put(new Empl("Ram",3000), "RAM");
tm.put(new Empl("John",6000), "JOHN");
tm.put(new Empl("Crish",2000), "CRISH");
tm.put(new Empl("Tom",2400), "TOM");

Set<Empl> keys = tm.keySet();
for(Empl key:keys){
    System.out.println(key+" ==> "+tm.get(key));
}

答案 1 :(得分:0)

如果我正确地阅读您的问题,您有一个对象,并且您希望将其排序为基于整数属性的数据结构。在这种情况下,我建议实现二叉树。