package lesson10;
public class Demo4
{
public static void main(String[] args)
{
Dog[] dogs=new Dog[]{new Dog("d1",2),new Dog("d2",4),new Dog("d3",3)};
//MyArrays.sort(dogs);
MyArrays.sort(dogs,new MyComparator(){
public int compare(Object a, Object b)
{
Dog dog1=(Dog)a;
Dog dog2=(Dog)b;
int ret=0;
if(dog1.age>dog2.age)
{
ret=-1;
}else if(dog1.age<dog2.age)
{
ret=1;
}
return ret;
}
});
for(Dog dog:dogs)
{
System.out.println(dog);
}
}
}
class Dog implements MyComparable
{
String name;
int age;
public Dog(String name,int age)
{
this.name=name;
this.age=age;
}
@Override
public int compareTo(Object o)
{
int ret=0;
Dog dog=(Dog)o;
if(this.age>dog.age)
{
ret=1;
}
else if(this.age<dog.age)
{
ret=-1;
}
return ret;
}
@Override
public String toString()
{
return "name:"+name+"\tage:"+age;
}
}
interface MyComparable
{
int compareTo(Object o);
}
interface MyComparator
{
int compare(Object a,Object b);
}
class MyArrays
{
public static void sort(Object[] obj)
{
for(int i=0;i<obj.length-1;++i)
{
for(int j=0;j<obj.length-i-1;++j)
{
if(((MyComparable)obj[j]).compareTo(obj[j+1])==1)
{
swap(obj,j,j+1);
}
}
}
}
public static void sort(Object[] obj,MyComparator cp)
{
for(int i=0;i<obj.length-1;++i)
{
for(int j=0;j<obj.length-i-1;++j)
{
if(cp.compare(obj[j],obj[j+1])==1)
{
swap(obj,j,j+1);
}
}
}
}
public static void swap(Object[] obj,int x,int y)
{
Object temp=obj[x];
obj[x]=obj[y];
obj[y]=temp;
}
}
策略模式
最新推荐文章于 2024-08-14 10:00:00 发布