0

次のコードを使用して、オブジェクトのリストをMAPに保持しています。

 Map<String, List<Rows>> map = new HashMap<String, List<Rows>>()
 while( rs.next() ) {
      Rows row = new Rows();
      /*
       * code to initialize the values of row from the record
      */
     String category = rs.getString("Cat");
     if(!map.containsKey(category)){
         map.put(category, new ArrayList<Rows>());
     }
     map.get(category).add(row);
  }

カテゴリごとに値を並べ替えることはできますか?特定のカテゴリのアイテムを削除する方法は?

4

4 に答える 4

1

@Emeキーで並べ替えられたマップが必要な場合は、SortedMapと呼ばれます。

さらに、特定のカテゴリのリストからアイテムの1つを削除する場合は、次の操作を実行できます。

List<Row> list = map.get(category);
list.remove(index of element you want to remove);
map.put(category, list);
于 2012-09-29T07:54:57.517 に答える
1

remove()マップのアイテム使用方法を削除するには:

map.remove(category)

各カテゴリのアイテムがリストに保存されていることを理解している限り、並べ替えは簡単です。

Collections.sort(map.get(category))

カスタムを使用して並べ替えをカスタマイズできますComparator

編集:

ただし、キーをマップに並べ替える場合はSortedMap、たとえばTreeMap、カテゴリを比較することを認識しているコンパレータを提供する必要があります。それ以外の場合、キーはアルファベット順にソートされます。

于 2012-09-29T07:56:18.777 に答える
0

カテゴリ内の値を並べ替えることはできますか:リストの代わりにPriorityQueueを使用して、値が追加されたときに値を並べ替えたままにします。

削除するには、map.get(category).remove(row);を使用できます。または、mapから継承し、remove(..)をオーバーライドする新しいクラスを作成します。ここにコードを配置して、マップ自体ではなく、特定のキーに添付されたリストから削除できます。

于 2012-09-29T07:56:17.620 に答える
0

list を使用して、アイテムを ur カテゴリに格納します。リストを並べ替える API 関数です。(map.remove(category) ).get(0) を使用して、カテゴリリストの最初のアイテムを取得します

于 2012-09-29T07:59:50.963 に答える