怎么使用Comparable接口

网友投稿 200 2024-02-03


怎么使用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

编程技术 和 程序设计

本文主要介绍"C#怎么实现插件构架",希望能够解决您遇到有关问题,下面我们一起来看这篇 "C#怎么实现插件构架" 文章。假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要 ...


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Hibernate核心接口有哪些
下一篇:c#如何显式实现接口成员
相关文章

 发表评论

暂时没有评论,来抢沙发吧~