永发信息网

程序改错 关于容器

答案:2  悬赏:70  手机版
解决时间 2021-04-13 07:32

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

class Person implements Comparable<Person>{
int age;
String fristname,lastname;
public Person(String frist,String last,int ag){
fristname=frist;
lastname=last;
age=ag;
}
public String toString(){
return fristname+" "+" "+lastname;
}
public int compareTo( Person o) {
if(this.age>o.age)
return 0;
else if(this.age<o.age)
return -1;
else
return 0;
}
}
public class Testcontain {



public static void main(String[] args) {
// TODO Auto-generated method stub
List<Person> con=new ArrayList<Person>();
con.add(new Person("f2","l2",25));
con.add(new Person("f1","l1",16));
con.add(new Person("f3","l3",19));
con.add(new Person("f4","l4",16));
System.out.println(con.size());
Object[] person=con.toArray();
Arrays.sort(person);//这个没实现按年龄排序
for(int i=0;i<person.length;i++)
System.out.println(person[i]);
Collections.sort(con);//这个也没实现 为什么呀 怎么回事
System.out.println(Arrays.binarySearch(person,new Person("f2","l2",25) ));
System.out.println(con);
}

}

最佳答案

你的compareTo重写的有问题,


if(this.age>o.age)
return 0;



应该是return 1;



不能有2种情况返回的值是一样的,不然比较器无法比较!

全部回答

实现comparable接口

public String toString() { return firstname +" "+lastname+“ +age; } }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
洛奇中的hp减少是怎么回事
放屁的时候要蹲下吗
魔兽世界能修改身份证吗?
昂克赛拉需要底盘护甲吗?
11月1日活动奖励怎么只给我3张抽奖券A
湖南省轻工盐业集团有限责任公司涟源配送站怎
阅读理解Maybeyoucannotimaginewhatahotel
表现内心伤感的诗句,形容离别时伤感的诗句
手机冲会员和黄砖电话是好多?
论文答辩硕士导师评语,求研究生中期考核考核
填空题己知人体皮肤的表面积约1.5m2。那么,
芽庄珍珠度假村高尔夫海景房好一点还是豪华海
新高线/滦古线(路口)地址在什么地方,想过去
延吉市哪里可以批发充值卡?
DNF狂战最好的武器是什么?又实用
推荐资讯
广州莱好物业管理服务有限公司怎么样?
那位朋友能告诉我N86现在实价是多少是不是智
求救::和男友把爱经营到了死胡同,想起彼此就
有没有唱迪达拉和李洛克的歌? 50分
N72为什么一直是手机QQ2008的啊那以后还是200
一道高一地理题
诛仙飞天F是怎么定NPC的啊?/有的MMMM急转5重
新八德是哪八德,各是什么意思?(急用)
汉译英,我花了成千上万的时间读这本书
请问哪里有弧形对联的木板买?
Levi’s西安小寨百盛店在哪里啊,我有事要去
饭店产品的含义,产品别是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?