请大家看看我做的对吗?
编程实现类MyList继承于ArrayList ,重写equal()方法,实现如下功能:
如果两个MyList的实例MY1,MY2不为空,并且其长度相同,而且对应元素也相等。则ML1.equal(ML2)=true 解:import java.util.*;
class MyList extends ArrayList { public boolean equal(MyList t1,MyList t2) { Iterator m1=t1.iterator(); Iterator m2=t2.iterator(); int n1=0; int n2=0; while(m1.hasNext()) { m1.next(); n1++; } while(m2.hasNext()) { m2.next(); n2++; } if(n1==n2) { return true; } else { return false; } } } public class Test1 {
public static void main(String[] args) { } }
----------------解决方案--------------------------------------------------------
// try it
import java.util.*;
class MyList extends ArrayList
{
public boolean equals(Object o)
{
return super.equals(o);
}
}
public class Test1
{
public static void main(String[] args)
{
MyList mylist1 = new MyList();
MyList mylist2 = new MyList();
mylist1.add("1");
mylist1.add("2");
mylist2.add("1");
mylist2.add("2");
if(mylist1.equals(mylist2))
System.out.println("They are same");
else
System.out.println("They are not same");
//////////////////////////////////////////
mylist2.add("3");
if(mylist1.equals(mylist2))
System.out.println("They are same");
else
System.out.println("They are not same");
}
}
----------------解决方案--------------------------------------------------------
原来是什么功能?
----------------解决方案--------------------------------------------------------
这是我们这里一次小考的考题,谢谢帮助了
----------------解决方案--------------------------------------------------------
果然是高手啊!
----------------解决方案--------------------------------------------------------
以下是引用yangwudong在2005-8-19 9:17:27的发言:
果然是高手啊!
受不了 ----------------解决方案--------------------------------------------------------
但是,这个有问题,因为用原来的equals方法试不行的,原来的方法不止试判断那些,而且还会判断他们的hashcode,所以,呵呵,那个方法是错的,要重写那个方法!包括内容!
----------------解决方案--------------------------------------------------------