大家好,我是向同学,从今天继续每日一题,旨在为提高大家的基础知识。
话说干了这么多年的开发,只知道会用,怎么用,用什么,隐约也知道了为什么用,但为啥JAVA总像一个犹抱琵琶半遮面的女子,总让人看不透,看不腻?应该就是基础不扎实了
。
每日一题20201010答案:
(点击阅读原文可以查看每日一题20201010)
每日一题20201010
主程序输出结果是true。
分析结果,ArrayList、Vector两者都实现了List接口、继承AbstractList抽象类,其equals方法是在AbstractList类中定义的,源代码如下:
代码语言:javascript复制public boolean equals(Object o) {
if (o == this)
return true;
// 判断是否是List列表,只要实现了List接口就是List列表
if (!(o instanceof List))
return false;
// 遍历list所有元素
ListIterator<E> e1 = listIterator();
ListIterator e2 = ((List) o).listIterator();
while (e1.hasNext() && e2.hasNext()) {
E o1 = e1.next();
Object o2 = e2.next();
// 有不相等的就退出
if (!(o1==null ? o2==null : o1.equals(o2)))
return false;
}
// 长度是否相等
return !(e1.hasNext() || e2.hasNext());
}
从源码可以看出,equals方法并不关心List的具体实现类,只要是实现了List接口,并且所有元素相等、长度也相等的话就表明两个List是相等的,所以例子中才会返回true。
今日题目
今日问题:
代码语言:javascript复制public class Ques1018 {
public static void main(String[] args){
Obj obj01 = new Obj("18");
Obj obj02 = new Obj("19");
obj01.printAge(obj02);
}
}
class Obj{
private String age;
public Obj(String age){
this.age = age;
}
public void printAge(Obj obj){
String age = obj.age;
System.out.println("年龄是:" age);
}
}
请问主程序输出结果是什么?
(问题分析将在每日一题20201010公布)大家也可以在留言区留言!!!
地址:http://cn.hk.uy/xqz
作者:小五
作者:BossXiang,可爱且懂得生活的研究生一枚(码农一枚)。
"一起学习、成长、温情的热爱生活。"
私人微信|
CSDN|知乎|github|掘金:五角钱的程序员
关注福利
关注公众号,后台回复【电子书】
送几百本常用技术类电子书籍
五角钱的程序员
希望这篇文章可以帮到你~
欢迎大家点个在看,分享至朋友圈
你我都成为光发热之人,在看在看在看~(疯狂暗示!)