weixin_慕码人2241264
出逃指南
都是已存在
你这个写得有些复杂了吧,用时间对象可以不?
qq_慕瓜8042302
这个输出的是对象,你可以在student中重写toString方法。
weibo_慕少1561742
消除bug
慕粉18455576
qq_慕虎6321845
已解决,因为类型列表<学生>中的添加方法(学生)不适用于参数(整数),所以自定义一个Integer泛型的List就好了。
具体代码:List<Integer> intList=new ArrayList<Integer>();

qq_慕虎6321845
按住 Ctrl 键,点击就可以
奶尤糯米团子
重发下:翻了下以前的问答有这个重写的:第三行的comparaTo是原始没有被重写的(事实上到这里为止comparaTo没有被重写完成,所以使用的也不可能是重写的),这里之所以可以直接用,因为比较的两者是基本类型,this.id.compareTo(arg0.id,都是字符型。两个string做简单比较是不存在歧义不需要重写就可以实现的,只有当比较对象是Student这种复杂的,里面包含多个属性的类对象,原始的comparaTo才无法比较,需要重写。
一个是比较学生对象,一个是比较id
慕丝1322028
你是用Student类而不是StudentComparator类实现Comparator接口的,所以在sort的时候new StudentComparator()当然不适用了。?
慕丝1322028
comparator是临时的,compareable从默认的,也就是说,当你sort(studentList),这个时候因为没有给一个临时的comparator,compareable的意思是,当没有其他的规则时,按照默认的排序。
原理和初始化类似,初始化一个对象时,如果你不给参数,他就会按照默认的,给了就覆盖掉。
慕丝1322028
qq_慕神2245698
如果id = “aa”Integer.valueOf 这里会抛类型转换异常
理论上应该可以,只是感觉没有必要这么写。
801扇影
int 是基本类型 没有toString()方法
使用包装类Integer即可
或String.valueOf()方法
慕工程4207824
看你的截图,生成的学生ID都是null...这自然是无法比较的?
也许需要看下student出了什么问题或者像楼上所说看看main()怎么了.

慕工程4207824
要切换文件编码格式,老师的代码是GBK格式的。
慕姐7011792
ID是给student class定义的,不是object
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
return this.id.compareTo(o.id);
}
换成以下看看??
@Override
public int compareTo(Student o) { // <-- 看这里!!!
// TODO Auto-generated method stub
return this.id.compareTo(o.id);
}
qq_慕婉清5018271
就是转化成字符串的意思
Palyer
循环中多了i++草看了半天
qq_将就_2
首先你得明白contains()方法的实现原理,它比较两个对象的时候是通过equals()方法来实现是的,比较的是地址,所以你直接传入Student4_3类型的序列之后,序列中每一个Student4_3对象的地址确实是不一样的,这样直接调用contains()方法放回的都是false的。你要在Student4_3中重写equals()方法,具体的是需要比较id还是name你可以自己设定,eclipse中提供了重写equals()的快捷生成,直接生成就好了。这时候你再去调用contians()方式的时候,它就会更具List序列中Student4_3中重写的equals()去实现对比的是id还是name的值,而不再是直接对比两个对象的地址。
肥川
你的类名就叫做 students?
你实现 接口了吗?
慕斯7356729
为什么是new Student( ss.get(0)+ "", "小明")这个格式。+“”是什么意思
weixin_慕数据4535530
老师的是在这个后面还有+""这部分,这样处理就是把整型转化成了字符串类型
御坂20001205
Integer对象不能使用比较运算符进行大小比较。int类型的变量可以。
weixin_慕斯7415096
接口中确实不能有方法的实现,但可以进行接口回调,
比如我定义一个human接口和一个young类,
interface human
{
void Output();
}
class young implements human
{
public young(){}
public void Ouput(){}
}
human h=new young();
h.Output();
这样做是可以的,
qq_慕UI0414813
超级无敌大暴雨
感谢大佬
霸气小肆毛
已解决,知道问题出自哪里了,谢谢啦。
小白qsq132
那是因为你并没有在IF判断结束后做出结果为否的返回值,那样方法就会得不到返回值。
在IF结束后添加个 return -1; 吧。