程序员正在进行一个项目,必须实现equals方法与所给的hashCode方法协调运行: public int hashCode() { return (size.hashCode() + color.hashCode()) * 17; } 哪一个equals方法支持此目标?()
第1题:
A.publicinthashCode(){return343;}
B.publicinthashCode(){returnsize.hashCode();}
C.publicinthashCode(){returncolor.hashCode();}
D.publicinthashCode(){return(int)(Math.random()*1000);
第2题:
A.无法确定
B.publicbooleanequals(Objecto){Socks=(Sock)o;returnsize.equals(s.size);}
C.publicbooleanequals(Objecto){Socks=(Sock)o;returncolor.equals(s.color);}
D.publicbooleanequals(Objecto){Socks=(Sock)o;returnsize.equals(s.size)&&color.equals(s.color);}
第3题:
试题六(共 15分)
阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、umberOfElement()以及removeLastElement()。四个方法的含义分别为:
void addElement(Object): 在列表尾部添加一个对象;
Object lastElement(): 返回列表尾部对象;
int numberOfElement(): 返回列表中对象个数;
void removeLastElement(): 删除列表尾部的对象。
现需要借助LinkedList来实现一个Stack栈类, Java代码1和Java代码2分别采用继承和组合的方式实现。
【Java代码1】
public class Stack extends LinkedList{
public void push(Object o){ //压栈
addElement(o);
}
public Object peek(){ //获取栈顶元素
return (1) ;
}
public boolean isEmpty(){ //判断栈是否为空
return numberOfElement() == 0;
}
public Object pop(){ //弹栈
Object o = lastElement();
(2) ;
return o;
}
}
【Java代码2】
public class Stack {
private (3) ;
public Stack(){
list = new LinkedList();
}
public void push(Object o){
list.addElement(o);
}
public Object peek(){//获取栈顶元素
return list. (4) ;
}
public boolean isEmpty(){//判断栈是否为空
return list.numberOfElement() == 0;
}
public Object pop(){ //弹栈
Object o = list.lastElement();
list.removeLastElement();
return o;
}
}
【问题】
若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)
试题六参考答案
(1)lastElement() (3分)
(2)removeLastElement() (3分)
(3)LinkedList list (3分)
(4)lastElement() (3分)
(5)A,或继承 (3分)
第4题:
class Sock2 { String color; public boolean equals(Object o) { return color.equals(((Sock2)o).color); } } class TestSocks { public static void main(String [] args) { Sock2 s1 = new Sock2(); s1.color = "blue"; Sock2 s2 = new Sock2(); s2.color = "blue"; if (s1.equals(s2)) System.out.print("equals "); if (s1 == s2) System.out.print("== "); } } 结果为:()
第5题:
public class Person { private String name, comment; private int age; public Person(String n, int a, String c) { name = n; age = a; comment = c; } public boolean equals(Object o) { if(! (o instanceof Person)) return false; Person p = (Person)o; return age == p.age && name.equals(p.name); } } What is the appropriate definition of the hashCode method in class Person?()
第6题:
classSock2{Stringcolor;publicbooleanequals(Objecto){returncolor.equals(((Sock2)o).color);}}classTestSocks{publicstaticvoidmain(String[]args){Sock2s1=newSock2();s1.color="blue";Sock2s2=newSock2();s2.color="blue";if(s1.equals(s2))System.out.print("equals");if(s1==s2)System.out.print("==");}}结果为:()
A.==
B.equals
C.equals==
D.无结果输出
第7题:
Object类中的方法public int hashCode[],在其子类中覆盖该方法时,其方法修饰符可以是( )。
A.protected
B.public
C.private
D.缺省
第8题:
Object类中的方法public int hashCode(),在其子类中覆盖该方法时,其方法修饰符可以是______。
A) protected
B) public
C) private
D) 缺省
A.
B.
C.
D.
第9题:
1. public class Person { 2. private String name; 3. public Person(String name) { this.name = name; } 4. public boolean equals(Person p) { 5. return p.name.equals(this.name); 6. } 7. } Which is true?()
第10题:
import java.util.*; class KeyMaster { public int i; public KeyMaster(int i) { this.i = i; } public boolean equals(Object o) { return i == ((KeyMaster)o).i; } public int hashCode() { return i; } } public class MapIt { public static void main(String[] args) { Set