java - 用唯一的数字表示一组字符串,也可以根据数字进行排序。

标签 java sorting

我正在寻找一种机制,可以使用唯一的数字来表示一组字符串,这样当我想要对它们进行排序时,我可以使用数字来对这些值进行排序。

例如,这就是我的想法

我保留固定长度的数字 20 位

每个字母表都用其 ASCII/某些字母顺序值表示

猫 - (03)(01)(20)(00)(00)(00)(00)(00)(00)(00) - 03012000000000000000
白内障 - (03)(01)(20)(01)(18)(01)(03)(20)(00)(00) - 03012001180103200000
资本 - (03)(01)(16)(09)(20)(01)(12)(00)(00)(00) - 03011609200112000000

因此,如果我根据数字对其进行排序,它会排序并显示

首都,猫,白内障

这是一个好方法吗?

还有其他方法可以让我更准确吗?

谢谢,

最佳答案

如果您的字符串长度是固定的,并且字符集固定为 100 个不同的字符,您可以将字符串中的每个字符视为以 100 为基数的数字,以将字符串转换为 double 型。

如果您的字符串集比可能的字符串集小得多,您可以对它们进行散列,并针​​对冲突任意但一致地定义排序顺序。

在特定情况下,我可能不会推荐其中任何一个,但作为您所说的 super 通用解决方案,它是有效的。但如果你问的似乎是一个理论问题,那么理论答案似乎是合适的。

关于java - 用唯一的数字表示一组字符串,也可以根据数字进行排序。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26145659/

相关文章:

php - 如何通过 php/mysql 对我的日期进行排序?

java - 在java中使用BUBBLE SORT对二维字符串数组进行排序

MySQL - 通过加入一列来排序 2 列

java - JToolBar/JMenu位置重叠

java - 有多少()可以在Java中调用非静态方法?

java - 谁将像在 C++ 中一样在 Java 中扮演 Friend 函数的角色?

Java RMI 在租约到期后不关闭套接字

java - 如何使用相同的 ResultSet 填充 2 个 CachedRowSet?

java - 如何以最短的方式对JTable进行排序?

java - 在集合中排序比较器/可比较