订购HashMap

时间:2012-10-15 00:25:42

标签: java android sorting vector hashmap

晚上好。

我需要组织一个HashMap,它是这样的:

私人HashMap<字符串,矢量<任务> > tasksOrdered = new HashMap<字符串,矢量<任务> > ();

每个“任务”都是一个具有3个属性的制作类:

  • 人名;
  • 小时;
  • 学科;

我知道,通过该HashMap,我可以将任务按小时分组为向量,只需将任务小时数设置为关键,然后添加这些向量,或者如果存在向量,则添加实例。

我的问题是,我如何按人名命名这些载体?

我想要的一个例子:

[1]:表https://dl.dropbox.com/u/4134140/Untitled.png

希望有所帮助:S

3 个答案:

答案 0 :(得分:3)

您可以按照这样的人名来订购:

SortedMap<String, List<Task>> taskMap = new ConcurrentSkipListMap<String, List<Task>>();
taskMap.put(task.getPerson().getName(), task);

答案 1 :(得分:0)

HashMap没有给你任何订购。但是,我不确定你是否真的对排序感兴趣?

您似乎想根据名称对任务进行分组?您可以通过将人员名称插入哈希映射来获取向量来执行相同操作。如果要按名称检索它们,可以抓取keyset(),调用java.util.Collections.sort(),然后按顺序检索向量。

答案 2 :(得分:0)

Key = task and value = person name of person

Collections.sort(Vector,new Comparator() {

        @Override
         public int compare(Vector o1, Vector o2) {
             return Collator.getInstance().compare(o1.getvalue(), o2.getValue());
         }
    });

只是伪装,可能需要一些调整。