程序员正在进行一个项目,必须实现equals方法与所给的hashCode方法协调运行:  public int hashCode() {    return (size.hashCode() + color.hashCode()) * 17;    }    哪一个equals方法支持此目标?() A、 无法确定B、 public boolean equals(Object o) {  Sock s = (Sock) o; return size.equals(s.size);}C、 public boo

题目

程序员正在进行一个项目,必须实现equals方法与所给的hashCode方法协调运行:  public int hashCode() {    return (size.hashCode() + color.hashCode()) * 17;    }    哪一个equals方法支持此目标?() 

  • A、 无法确定
  • B、 public boolean equals(Object o) {  Sock s = (Sock) o; return size.equals(s.size);}
  • C、 public boolean equals(Object o) {  Sock s = (Sock) o; return color.equals(s.color);}
  • D、 public boolean equals(Object o) {  Sock s = (Sock) o; return size.equals(s.size) &&color.equals(s.color);  }
参考答案和解析
正确答案:D
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

classSock{Stringsize;Stringcolor;publicbooleanequals(Objecto){Socks=(Sock)o;returncolor.equals(s.color);}//insertcodehere}哪两个满足hashCode的约定?()

A.publicinthashCode(){return343;}

B.publicinthashCode(){returnsize.hashCode();}

C.publicinthashCode(){returncolor.hashCode();}

D.publicinthashCode(){return(int)(Math.random()*1000);


参考答案:B, C

第2题:

程序员正在进行一个项目,必须实现equals方法与所给的hashCode方法协调运行:()publicinthashCode(){return(size.hashCode()+color.hashCode())*17;}哪一个equals方法支持此目标?()

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);}


参考答案:D

第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("== ");   }   }   结果为:()      

  • A、==
  • B、equals
  • C、equals ==
  • D、无结果输出

正确答案:B

第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?() 

  • A、 return super.hashCode();
  • B、 return name.hashCode() + age * 7;
  • C、 return name.hashCode() + comment.hashCode() /2;
  • D、 return name.hashCode() + comment.hashCode() / 2 - age * 3;

正确答案:B

第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.无结果输出


参考答案:B

第7题:

Object类中的方法public int hashCode[],在其子类中覆盖该方法时,其方法修饰符可以是( )。

A.protected

B.public

C.private

D.缺省


正确答案:B
所有的类都是Object的子类,如果要覆盖Object的equals方法则必须覆盖hasCode方法,覆盖时的属性是public。

第8题:

Object类中的方法public int hashCode(),在其子类中覆盖该方法时,其方法修饰符可以是______。

A) protected

B) public

C) private

D) 缺省

A.

B.

C.

D.


正确答案:B

第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?() 

  • A、 The equals method does NOT properly override the Object.equals method.
  • B、 Compilation fails because the private attribute p.name cannot be accessed in line 5.
  • C、 To work correctly with hash-based data structures, this class must also implement the hashCode method.
  • D、 When adding Person objects to a java.util.Set collection, the equals method in line 4 will prevent duplicates.

正确答案:A

第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 set = new HashSet();  KeyMaster k1 = new KeyMaster(1);  KeyMaster k2 = new KeyMaster(2);  set.add(k1); set.add(k1);  set.add(k2); set.add(k2);  System.out.print(set.size() + “:”);  k2.i = 1;  System.out.print(set.size() + “:”);  set.remove(k1);  System.out.print(set.size() + “:”);  set.remove(k2);  System.out.print(set.size()); }  }  What is the result?() 

  • A、 4:4:2:2
  • B、 4:4:3:2
  • C、 2:2:1:0
  • D、 2:2:0:0
  • E、 2:1:0:0
  • F、 2:2:1:1
  • G、 4:3:2:1

正确答案:F

更多相关问题