您的位置:首页 > 编程语言 > Java开发

java中Comparable接口

2015-10-29 08:42 211 查看
普通的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<Integer> lst=new ArrayList<Integer>();
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("\n");
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<CompareDemo >{
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<o.getage()){
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<CompareDemo> list=new ArrayList<CompareDemo>();
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());
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: