嗨我有和模型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
,...?如何创建该类型的集合?任何帮助都非常感激。感谢。
答案 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)
如果我正确地阅读您的问题,您有一个对象,并且您希望将其排序为基于整数属性的数据结构。在这种情况下,我建议实现二叉树。