0

晚上好。

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

private HashMap < String , Vector < Task >> tasksOrdered = new HashMap < String , Vector < Task >> ();

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

  • 人名;
  • 小时;
  • 纪律;

我知道使用该 HashMap 我可以将任务按小时分组为向量,只需将任务小时数设置为键,并添加这些向量,或者如果存在现有向量则添加实例。

我的问题是,我如何按人名订购这些向量?

我想要的一个例子:

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

希望它有所帮助:S

4

3 回答 3

3

您可以像这样按人名订购:

SortedMap<String, List<Task>> taskMap = new ConcurrentSkipListMap<String, List<Task>>();
taskMap.put(task.getPerson().getName(), task);
于 2012-10-15T00:27:56.140 回答
0

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

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

于 2012-10-15T00:34:37.317 回答
0

键 = 任务和值 = 人名

Collections.sort(Vector, new Comparator() {

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

只是假的,可能需要一些调整。

于 2012-10-15T00:35:12.027 回答