2017-12-03 7 views
1

첫 번째 offer() 메서드와 두 번째 offer() 메서드의 차이점을 이해하려고합니다. Java에서 NetBeans로 프로그래밍 할 때 첫 번째 제안 방법의 if 문이 중복된다는 힌트가있었습니다. if 문을 구성한 후 offer 메소드의 코드는 "return stk1.push (element) .equals (element);"라고 읽습니다. 코드 줄 "return stk1.push (element) .equals (element)"는 정확히 무엇을합니까? 어떻게 중복성을 처리 했습니까?제안 메소드에서 "return stk1.push (element) .equals (element)"는 무엇을합니까?

//FIRST - my attempt 
public BinaryPollQueue() 
{ 
    stk1 = new Stack<>(); 
    stk2 = new Stack<>(); 
} //BinaryPollQueue 

public boolean offer(E element) 
{ 
    if(stk1.push(element).equals(element)) 
    { 
     return true; 
    } //if 
    else 
    { 
     return false; 
    } //else 

} //offer 

//SECOND - configured based on hint given 
public BinaryPollQueue() 
{ 
    stk1 = new Stack<>(); 
    stk2 = new Stack<>(); 
} //BinaryPollQueue 

public boolean offer(E element) 
{ 
    return stk1.push(element).equals(element); 
} //offer 

답변

0

stk1.push(element).equals(element)boolean 값을 반환합니다. 이것이 처음에 if 성명서에 나타날 수있는 이유입니다. stk1.push(element).equals(element)true이고, 그렇지 않으면 false을 반환 할 때 if 문 이후

true을 반환, 당신은 단순히 booleanstk1.push(element).equals(element)을 반환하고 if 문을 제거 얻을 수 있습니다.

+1

그건 의미가 있습니다! 고맙습니다!! – controlledChaos

+0

@controlledChaos 환영합니다! – Eran