如果ADT需要比较大小,或者要放入Collections或Arrays进行排序,可实现Comparator接口并override compare()函数。
第一种:
构建一个新的Comparator类,重写compare()函数,在客户端直接调用静态函数Collections.sort(XXX,新的Comparator类)
代码示例:
需要比较Edge类:
构建一个新的Comparator类EdgeComparator:
客户端实现比较函数时:
第二种方法:
让ADT 实现Comparable 接口,然后override compareTo() 方法。
与使用Comparator的区别:不需要构建新的Comparator类,比较代码放在ADT内部。
代码示例: