使用Java,我如何优雅地对HashMap进行多种排序?

时间:2014-10-14 02:58:53

标签: arraylist hashmap

如果我有一个课程项目:

public class Project {
    enum Status {
        NEW, OPENED, STOPPED, PERPETUAL, CLOSED, CANCELLED
    }   
    enum Priority {
        CRITICAL, HIGH, MEDIUM, LOW, SOMEDAY
    }

    private String id;
    private String title;
    private Status status;
    private Priority priority;
}

我想对此实施几种。 例如,String [] keysById(),String [] keysByStatus(),String [] keysByPriority()。 ArrayList或其他东西也没关系。

目前我有一个HashMap:

public class ProjectHash extends HashMap<String, Project> {

    public ProjectHash() {
        super();
}
// I use add() (instead of put()) because the key is in the value.
    public Project add(Project p) {

    Project retVal = null;

    if(this.containsKey(p.getId())) {
        // We've got a problem.  I don't know what to do yet: overwrite, or vomit.
        // Overwrite for now.
    }
    retVal = super.put(p.getId(),p);
    return(retVal);  
}

}

我已经删除了很多错误检查和字段,但希望我已经足够了解重点。这个HashMap每天都看不到很多添加或排序(12?)。

我一直在阅读有关集合,可收集,HashMap,TreeMap,Lists,ArrayLists等的内容,直到我的大脑融化。我可以看到十几种方法来实现它。哪个适合我?它是Java 8,不用担心倒退。

0 个答案:

没有答案