这篇文章主要介绍“如何使用Comparable接口”,在日常操作中,相信很多人在如何使用Comparable接口问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Comparable接口”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Comparable接口,直译过来也就是比较器,通常用于实现指定对象的排序规则。Comparable接口的定义如下:
public interface Comparable<T>{ public int compareTo(T o); }
compareTo()方法返回一个int类型的值,此返回值只有以下三个:
1:表示大于
-1:表示小于
0:表示等于
基于Comparable接口实现的二叉树操作
/** * */ package com.java.thread; /** * @author JimyChen * @date 2009-9-1 */ class BinaryTree{ class Node{ private Comparable data; private Node left; private Node right; public void addNode(Node newNode){ if(newNode.data.compareTo(this.data) < 0){//这里关键要搞清楚这个this的含义 if(this.left==null){ this.left=newNode; }else{ this.left.addNode(newNode); } } if(newNode.data.compareTo(this.data) >= 0){ if(this.right==null){ this.right=newNode; }else{ this.right.addNode(newNode); } } } public void printNode(){ if(this.left!=null){ this.left.printNode(); } System.out.print(this.data+"\t"); if(this.right!=null){ this.right.printNode(); } } }; private Node root; public void add(Comparable data){ Node newNode=new Node(); newNode.data=data; if(root==null){ root=newNode; }else{ root.addNode(newNode); } } public void print(){ this.root.printNode(); } }; public class ComparableDemo{ public static void main(String[] args){ BinaryTree bt=new BinaryTree(); bt.add(9); bt.add(8); bt.add(10); bt.add(3); bt.add(2); bt.add(4); bt.add(5); bt.add(7); System.out.println("The sorted result is: "); bt.print(); } }
此Comparable接口在本机测试通过,结果为:
The sorted result is:
2 3 4 5 7 8 9 10
到此,关于“如何使用Comparable接口”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。