当前位置:网站首页 > Java基础 > 正文

java比较器菜鸟教程



 <span>比较函数,它对某些对象集合施加<i>总排序</i> 。</span> <span>可以将比较器传递给排序方法(例如或 ),以便精确控制排序顺序。</span> <span>比较器还可用于控制某些数据结构的顺序(例如或 ),或者为没有的对象集合提供排序。</span> <p> <span>比较器对一组元素施加的排序被认为<i>与等号一致,</i>当且仅当具有与 ( 和在中的相同的布尔值时。</span> </p> <p> <span>当使用能够强加与equals不一致的排序的比较器来排序有序集(或有序映射)时,应该谨慎行事。</span> <span>假设具有显式比较器的有序集(或有序映射)与从集合提取的元素(或键) 。</span> <span>如果对的排序与equals不一致,则排序集(或有序映射)将表现得“奇怪”。</span> <span>特别是有序集(或有序映射)将违反集合(或映射)的一般合同,其定义为 。</span> </p> <p> <span>例如,假设有两个元素和 ,使为空 ,比较器为 。</span> <span>第二个操作将返回true(并且树集的大小将增加)因为和在树集的视角中不相等,即使这与方法的规范相反。</span> </p> <p> <span>注意:这通常是一个好主意比较,也能实现 ,因为它们可能被用来作为排序的序列化数据结构的方法(如 , )。</span> <span>为了使数据结构成功序列化,比较器(如果提供)必须实现 。</span> </p> <p> <span>对于数学上的倾斜,即限定了<i>施加顺序</i>给定的比较器的<i>关系</i> 上一组给定对象强加是:</span> </p> <pre> <span>{(x, y) such that c.compare(x, y) &lt;= 0}.</span> </pre> <span>此总订单的<i>商</i>是:</span> <pre> <span>{(x, y) such that c.compare(x, y) == 0}.</span> </pre> <span>它从合同紧跟 ,该商数是一个<i>等价关系</i> ,并且实行排序是<i>全序</i> 。</span> <span>当我们说对施加的排序<i>与equals一致时</i> ,我们的意思是排序的商是由对象' 方法定义的等价关系:</span> <pre> <span>{(x, y) such that x.equals(y)}.</span> </pre> <p> <span>与不同,比较器可以选择允许比较空参数,同时保持对等关系的要求。</span> </p> <p> <span>此界面是Java Collections Framework的成员。</span> </p> 

  • 上一篇: 好的java se教程
  • 下一篇: 网上订餐java教程
  • 版权声明


    相关文章:

  • 好的java se教程2026-02-08 14:58:05
  • 达内java教程视频2026-02-08 14:58:05
  • java301全套教程2026-02-08 14:58:05
  • java案例教程书籍2026-02-08 14:58:05
  • github java核心教程2026-02-08 14:58:05
  • 网上订餐java教程2026-02-08 14:58:05
  • java键盘接收教程2026-02-08 14:58:05
  • java视频教程pan2026-02-08 14:58:05
  • java泛型代码教程2026-02-08 14:58:05
  • java348教程2026-02-08 14:58:05