Java的comparable接口_java中Comparable接口

发布时间:2021-09-19 09:12:56

普通的compareTo方法,是String类中用于字符串比较的方法,用于比较普通的ascill值,


若要用来比较数值型的,则必须调用String类中的静态方法valueOf(),具体看看代码怎么实现:


package excise;


public class Demo11_B23 {


public static void main(String args[]){


String name1="zhoumeixu";


String name2="gaoyang";


int age1=24;


int age2=30;


System.out.println("名字比较的结果是:"+name1.compareTo(name2));


System.out.println("年龄比较的结果是:"+String.valueOf(24).compareTo(String.valueOf(30)));


}


}


排序算法至少有六七种,什么冒泡排序,快速排序,一大堆的东西,在java中要实现对一个ArrayList的快速


排序,实际可以调用Collections中的sort方法的,上代码看看吧:


package excise;


import java.util.Arrays;


import java.util.List;


import java.util.ArrayList;


import java.util.Random;


import java.util.Collections;


public class Demo11_B23 {


public static void main(String args[]){


List lst=new ArrayList();


Random t=new Random();


for(int j=0;j<10;j++){


int temp=t.nextInt(1000);


lst.add(temp);


}


lst.addAll(Arrays.asList(12,2323,212,89,20,12,3123,123));


System.out.println(lst);


Collections.sort(lst);


for(int j=lst.size()-1;j>lst.size()-6;j--){


System.out.print(lst.get(j)+"..");


}


System.out.print("
");


int a=lst.remove(lst.size()-1);


lst.set(0, 99999);


System.out.println(lst);


System.out.println(a);


}


}


如果ArrayList对象是普通的类,调用Collections类中的sort方法会报错,这时候要覆写CompareTo接口中的compareto方法


具体看看怎么实现吧:


package excise;


import java.util.ArrayList;


import java.util.Collections;


import java.util.List;


public class CompareDemo implements Comparable{


private String name;


private int age;


public CompareDemo(){


}


public CompareDemo(String name,int age){


this.name=name;


this.age=age;


}


public void setage(int age){


this.age=age;


}


public void setname(String name){


this.name=name;


}


public String getname(){


return name;


}


public int getage(){


return age;


}


public int compareTo(CompareDemo o){


if(this.age>o.getage()){


return (this.age-o.getage());


}


if(this.age


return (this.age-o.getage());


}


if(this.name.compareTo(o.getname())>0){


return 1;


}


if(this.name.compareTo(o.getname())<0){


return -1;


}


return 0;


}


public static void main(String args[]) {


CompareDemo f1=new CompareDemo("zhou",12);


CompareDemo f2=new CompareDemo("wang",10);


CompareDemo f3=new CompareDemo("chen",122);


CompareDemo f4=new CompareDemo("zhao",14);


CompareDemo f5=new CompareDemo("erbi",30);


List list=new ArrayList();


list.add(f1);


list.add(f2);


list.add(f3);


list.add(f4);


list.add(f5);


Collections.sort(list);


for(CompareDemo o:list){


System.out.println(o.getname()+"------->"+o.getage());


}


}


}

相关文档

  • 我为大学生创业服务而自豪演讲稿
  • 电商实战书籍推荐
  • 保持谦卑的心
  • 唉声叹气的反义词和造句
  • 心碎繁体个性网名
  • MSYS2中编译DBUS、freetype、fontconfig、harfbuzz的笔记
  • 肺气肿是怎么回事?肺气肿的症状
  • Intel决心革三星的命,改变内存和存储芯片市场
  • 2019测试工程师面试题
  • 办公室主任工作自我总结范文
  • 我在清华学到了什么?清华学子献招高考
  • 小班体育小乌龟过草地教案
  • REST API 的一些理解
  • 全排列?库函数实现
  • foreoluna洁面仪用法,foreo怎么用foreo洁面仪使用教程
  • 红米手机开机教程
  • 实用版不定期劳动合同样式
  • 不再彷徨杂文随笔
  • 秋天吃什么汤对皮肤好
  • 租车需要注意什么
  • jdbc数据库连接丢失或未释放情况跟踪
  • 猴头菇的采收与加工
  • 日本女人是如何进行家务整理的
  • 口才训练的基本要求
  • 老舍猫读书笔记
  • 幼儿园大班教案《运用货币》
  • java实现解压_Java实现ZIP解压功能
  • 2016南宁市事业单位公共基础知识测试题及答案
  • 微博王卡免流怎么开启
  • 苹果11处理器在哪里看
  • 猜你喜欢

    电脑版