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 に答える