有一种简单的方法可以在Java中按字母顺序排列字符串枚举吗?

时间:2009-09-30 14:50:52

标签: java sorting enumeration

正如标题所说。

我尝试使用List []上的Collections.sort()和ArrayList的.sort()函数进行一些处理,但是我从来没有能够将它解析回Enumeration。

谢谢!

编辑:

这是一些pseduocode和进一步的解释。我的目标是从Hashtable中获取keys()并按字母顺序执行涉及每个操作的复杂操作。

我目前的流程是:

  1. 拿一张我给的哈希表
  2. 从ht
  3. 形成枚举
  4. 运行while循环,直到枚举为空
  5. 所以代码是这样的:

    public void processData(Hashtable<String,GenericClass> htData)
    {
        Enumeration<String> enData = htData.keys();
    
        while(enData.hasMoreElements())
        {
            String current = enData.nextElement();
    
            /*
             * DO COMPLEX PROCESS
             */
        }
    }
    

    问题是,枚举中的数据必须是按字母顺序排列的(也就是说,必须按字母顺序对每个键执行“复杂过程”)。有解决方案吗谢谢!

4 个答案:

答案 0 :(得分:4)

如果您有排序列表,可以使用

Collections.enumeration(myList中)

让它回到枚举...如果我正确地跟着你..

编辑:

你可以这样做......

List l = new ArrayList(ht.keySet());
Collections.sort(l)

答案 1 :(得分:2)

如果您需要按照键的顺序迭代项目,可能最好使用TreeMap而不是Hashtable。它的keySet方法将按顺序返回密钥。

答案 2 :(得分:0)

如何将键存储在ArrayList中进行排序呢?

    List<String> list = // create from htData.keys()
    Collections.sort(list);
    for(String s : list) {
    ...

答案 3 :(得分:0)

以下应该工作:

Enumeration<String> enumeration = dictionary.keys(); // unsorted enumeration        
List list= Collections.list(enumeration); // create list from enumeration 
Collections.sort(list);
enumeration = Collections.enumeration(list);
相关问题