2

タイトルの通りです。

List[] の Collections.sort() と ArrayList の .sort() 関数をいじってみましたが、それを解析して Enumeration に戻すことはできませんでした。

ありがとう!

編集:

ここに疑似コードと詳細な説明があります。私の目標は、Hashtable から keys() を取得し、それぞれを含む複雑な操作をアルファベット順に行うことです。

私の現在のプロセスは次のとおりです。

  1. 私が与えられたハッシュテーブルを取ります
  2. ht から列挙を形成する
  3. 列挙が空になるまで while ループを実行する

したがって、コードは次のようになります。

public void processData(Hashtable<String,GenericClass> htData)
{
    Enumeration<String> enData = htData.keys();

    while(enData.hasMoreElements())
    {
        String current = enData.nextElement();

        /*
         * DO COMPLEX PROCESS
         */
    }
}

問題は、列挙内のデータがアルファベット順でなければならないことです (つまり、「複雑なプロセス」を各キーでアルファベット順に実行する必要があります)。解決策はありますか?ありがとう!

4

4 に答える 4

4

ソートされたリストがある場合は、使用できます

Collections.enumeration(myList)

列挙に戻すには...私があなたを正しくフォローしていれば..

編集:

あなたはこれを行うことができます...

List l = new ArrayList(ht.keySet());
Collections.sort(l)
于 2009-09-30T14:57:15.620 に答える
2

キーの順にアイテムを反復処理する必要がある場合は、 a のTreeMap代わりに aを使用する方がよいでしょうHashtable。そのkeySetメソッドはキーを順番に返します。

于 2009-09-30T15:14:43.050 に答える
0

キーをArrayListに格納して並べ替えるのはどうですか?

    List<String> list = // create from htData.keys()
    Collections.sort(list);
    for(String s : list) {
    ...
于 2009-09-30T15:17:16.383 に答える
0

以下が機能するはずです:

Enumeration<String> enumeration = dictionary.keys(); // unsorted enumeration        
List list= Collections.list(enumeration); // create list from enumeration 
Collections.sort(list);
enumeration = Collections.enumeration(list);
于 2013-08-24T07:42:40.423 に答える