Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以唯一的数字表示一组字符串,这些数字也可以根据数字进行排序。_Java_Sorting - Fatal编程技术网

Java 以唯一的数字表示一组字符串,这些数字也可以根据数字进行排序。

Java 以唯一的数字表示一组字符串,这些数字也可以根据数字进行排序。,java,sorting,Java,Sorting,我正在寻找一种机制,在这种机制中,我可以使用唯一的数字表示一组字符串,这样当我想对它们进行排序时,我可以使用这些数字对这些值进行排序 例如,这就是我的想法 我保留一个固定长度的数字20位 每个字母表都用其ASCII/某些字母顺序值表示 类别-(03)(01)(20)(00)(00)(00)(00)(00)(00)-03012000000000000000 白内障-(03)(01)(20)(01)(18)(01)(03)(20)(00)(00)-03012001180103200000 资本-(0

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

例如,这就是我的想法

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

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

类别-(03)(01)(20)(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)-0301160920112000000

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

首都、首都、首都

这是一个很好的方法吗

有没有其他方法可以让我更准确

谢谢,

Sen

如果字符串长度固定,且字符集固定为100个不同的字符,则可以将字符串中的每个字符视为基数为100的数字,从而将字符串转换为双精度

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


在一个特定的情况下,我可能不会推荐这两种方法,但作为一个超级通用的解决方案,您所说的它是有效的。但是,如果你问一个似乎是理论问题的问题,理论上的答案似乎是合适的。

为什么不直接对
字符串进行排序呢?你试图用这个来解决的实际问题是什么?如果你只需要字典排序,只需使用
树集即可。默认的
Comparator
将为您完成这项工作。我在想,如果in可以用数字表示,那么可以编写一个O(n)复杂度排序机制。如果您的
String
s没有提前排序,您看不出还有什么比O(logn)更好的方法。