当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

TreeMap与自然排序(natural ordering)

发表于: 2014-04-16   作者:darrenzhu   来源:转载   浏览次数:
摘要: java.lang.Comparable<T> This interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class's natural ordering, and the class's
java.lang.Comparable<T>

This interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class's natural ordering, and the class's compareTo method is referred to as its natural comparison method.

Lists (and arrays) of objects that implement this interface can be sorted automatically by Collections.sort (and Arrays.sort). Objects that implement this interface can be used as keys in a sorted map or as elements in a sorted set, without the need to specify a comparator.

The natural ordering for a class C is said to be consistent with equals if and only if e1.compareTo(e2) == 0 has the same boolean value as e1.equals(e2) for every e1 and e2 of class C. Note that null is not an instance of any class, and e.compareTo(null) should throw a NullPointerException even though e.equals(null) returns false.

It is strongly recommended (though not required) that natural orderings be consistent with equals. This is so because sorted sets (and sorted maps) without explicit comparators behave "strangely" when they are used with elements (or keys) whose natural ordering is inconsistent with equals. In particular, such a sorted set (or sorted map) violates the general contract for set (or map), which is defined in terms of the equals method.

For example, if one adds two keys a and b such that (!a.equals(b) && a.compareTo(b) == 0) to a sorted set that does not use an explicit comparator, the second add operation returns false (and the size of the sorted set does not increase) because a and b are equivalent from the sorted set's perspective.

TreeMap与自然排序(natural ordering)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
TreeMap是可以保存键值对的一种方式,它的特殊之处是它可以自动以键进行升序排序。 下面举例说明它
TreeMap是可以保存键值对的一种方式,它的特殊之处是它可以自动以键进行升序排序。 下面举例说明它
一.排序二叉树 排序二叉树是一种特殊结构的二叉树,可以非常方便地对树中所有节点进行排序和检索。
一.Oracle Natural join <span style="font-size:12px;">create table test_table_A(id numbe
》TreeSet集合使用实例 》TreeSet集合的红黑树 存储与取出(图) 》TreeSet的add()方法源码 TreeSet集
  这次我们来说一些很小的东西,相当小。不过先说一个故事:   这天晚上,你打算出去下一次馆子
  这次我们来说一些很小的东西,相当小。不过先说一个故事:   这天晚上,你打算出去下一次馆子
  这次我们来说一些很小的东西,相当小。不过先说一个故事:   这天晚上,你打算出去下一次馆子
  这次我们来说一些很小的东西,相当小。不过先说一个故事:   这天晚上,你打算出去下一次馆子
  这次我们来说一些很小的东西,相当小。不过先说一个故事:   这天晚上,你打算出去下一次馆子
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号