java通过objecs字符串参数对具有对象值的哈希表进行排序

标签 java hashtable

我有一个包含字符串键和类对象值的可哈希对象:

Hashtable<String,myclass>m_class_table = new Hashtable<String,myclass>();

在“myclass”中我有一个字符串字段值,

我需要根据这个字符串值对哈希表进行排序。

我不能只按哈希表值对它进行排序,因为它是一个对象..

如何做到这一点?

提前致谢。

最佳答案

I need to sort my hashtable according to this string value.

哈希表不是排序的数据结构。

您可以使用一些 SortedMap ,例如 TreeMap 但是这些数据结构根据键进行排序,因此只有当键等于指向的对象的字符串字段时才会起作用。

I can't just sort it by the hashtable values beacuse it is an object..

您需要提供一个 Comparator<myclass> , 或者, 让 myclass实现 Comparable界面。

根据你如何遍历哈希表,你也许可以这样做:

List<myclass> myObjects = new ArrayList<myclass>(m_class_table.values());
Collections.sort(myObjects, new Comparator<myclass>() {
    @Override
    public int compare(myclass o1, myclass o2) {
        o1.stringField.compareTo(o2.stringField);
    }
});

然后遍历 myObjects列表。 (List 中的元素是有序的。)

关于java通过objecs字符串参数对具有对象值的哈希表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122105/

相关文章:

java - 当进程在后台运行时,使用 java.io.InputStreamReader 从标准输入读取会挂起

java - 连接 Datomic 数据库时出错

java - 从命令行运行 Netbeans maven 项目?

java - 响应.setContentType ("APPLICATION/OCTET-STREAM")

lisp - 我是一个 lisp 新手,我需要一个哈希表类。

algorithm - 我对这个双重哈希是正确的吗?

data-structures - 是否有任何哈希表(内存中、非分布式)使用一致哈希?

java - 通过 JRI 读取 R-Errors

c - 需要帮助理解和调整哈希表的算法

java - 如何从哈希表中检索 ArrayList<String> 的键?