zoukankan      html  css  js  c++  java
  • Iterator & Iterable 和 Comparable&Comparator

    public interface Comparator
    比较功能,对一些对象的集合施加了一个整体排序 。 可以将比较器传递给排序方法(如Collections.sort或Arrays.sort ),以便对排序顺序进行精确控制。 比较器还可以用来控制某些数据结构(如顺序sorted sets或sorted maps ),或对于不具有对象的集合提供的排序natural ordering 。
    通过比较c上的一组元素S的确定的顺序对被认为是与equals一致当且仅当c.compare(e1, e2)==0具有用于S每e1和e2相同布尔值e1.equals(e2)。

    public interface Comparable
    该接口对实现它的每个类的对象强加一个整体排序。 这个排序被称为类的自然排序 ,类的compareTo方法被称为其自然比较方法 。
    Collections.sort (和Arrays.sort )可以自动对实现此接口的对象进行列表(和数组)排序。 实现该接口的对象,可以使用如在键sorted map或作为在元件sorted set ,而不需要指定一个comparator 。
    一类C的自然顺序被说成是与equals一致当且仅当e1.compareTo(e2) == 0对每一个e1和C类e2相同的布尔值e1.equals(e2)。 请注意, null不是任何类的实例, e.compareTo(null)应该抛出一个NullPointerException即使e.equals(null)返回false 。
    强烈建议(尽管不需要)自然排序与等于一致。 这是因为,当没有显式比较器的排序集(和排序映射)与其自然排序与equals不一致的元素(或键)一起使用时会“奇怪地”。 特别地,这种排序集合(或排序映射)违反了根据equals方法定义的集合(或映射)的一般合同。

    IteratorIterable的区别和联系

    iterator是具有迭代状态的对象。它允许你检查它是否有更多的元素使用hasNext()并移动到下一个元素(如果有)使用next()。

    Iterable是可以迭代的一系列元素的简单表示。它没有任何迭代状态,如“当前元素”。相反,它有一种产生迭代器的方法。通常,Iterable应该能够生成任意数量的有效迭代器。也就是说:Iterator是迭代器,可以对可以迭代的对象集合进行遍历操作。而Iterable表示集合是可以迭代的,并提供了产生迭代器的方法。

    never give up
  • 相关阅读:
    编写高质量代码 :Web前端开发修炼之道(读书笔记)
    Cordova开发学习笔记
    C++面试总结
    深信服社招Linux岗位一面记录
    一次软件开发不问技术的面试
    面试总结2
    剑指offer 学习笔记(一):二维数组中的查找
    关于思维习惯问题
    ajax的使用(使用json格式提交给服务端)
    es6-13 类与对象
  • 原文地址:https://www.cnblogs.com/noncoretime/p/13746626.html
Copyright © 2011-2022 走看看