在J2ME中排序Hashtable

时间:2012-04-30 12:58:22

标签: java-me hashtable

我有一些数据,我已经按照某些订单将它们添加到Hashtable,我现在要做的是按照我输入的顺序获取数据

我可以使用哪种数据类型?

3 个答案:

答案 0 :(得分:2)

Hashtable不保留任何排序 如果您需要广告订单访问权限,请参阅JavaME

中是否提供Linked Hash Map

答案 1 :(得分:2)

假设您的密钥是一个String,您可以为其添加一些排序,并为排序的数据提供getter方法。见下面的例子:


    static int order;
    Hashtable map = new Hashtable();

    void put (String key, Object value) {
        map.put(order + key, value);
        order++;
    }

    Enumeration getSorted() {
        Enumeration keys = map.keys();
        Vector sortedKeys = new Vector();

        while (keys.hasMoreElements()) {
            String key = (String) keys.nextElement();
            insertionSort(key, sortedKeys);
        }

        Vector sortedData = new Vector();
        keys = sortedKeys.elements();
        while (keys.hasMoreElements()) {
            String key = (String) keys.nextElement();
            sortedData.addElement(map.get(key));
        }

        return sortedData.elements();
    }

您可以在http://en.wikipedia.org/wiki/Insertion_sort

找到insertionSort算法

答案 2 :(得分:0)

您可以下载Java SE的源代码,并通过删除泛型来轻松地在J2ME中创建LinkedHashMap(但您也可能需要在其父类和接口上执行此操作)。 您可以找到LinkedHashMap for Java ME here