2010-03-02 13 views
3

说我有两个UUID实例:Java的UUID字符串表示的自然排序

uuid1 = UUID.randomUUID(); 
uuid2 = UUID.randomUUID(); 

如果这两个比较,从而uuid1小于uuid2

uuid1.compareTo(uuid2) // -1 

是它总是正确的,他们的弦代表将会给出相同的结果,即,

uuid1.toString().compareTo(uuid2.toString()) // -1 ???? 

回答

6

总之,没有。这里的两位的UUID为其主张不成立一个快速反例:

  • b230f7ab-9420-4a3e-a684-284c609e76a5
  • 76d1f3c9-fc72-4f1a-ab48-28a858d760c5

使用来自UUID的compareTo,您将获得-1,而来自字符串的compareTo结果为。

+1

+1;从阅读API和RFC,我会预期一致的行为,虽然... – Christoph 2010-03-02 15:57:14

+1

请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7025832; Oracle不会修复这个实现,甚至可能不会承认Javadoc是错误的。 – 2014-01-16 12:27:09