2017-12-03 1 views
1

Ich versuche den Unterschied zwischen der ersten offer() - Methode und der zweiten offer() -Methode zu verstehen, die unten angegeben sind. Bei der Programmierung in NetBeans in Java wurde der Hinweis gegeben, dass die if-Anweisung in der ersten offer-Methode redundant ist. Nach dem Konfigurieren der if-Anweisung lautet der Code in der Angebotsmethode jetzt "return stk1.push (element) .equals (element);". Was macht die Codezeile "return stk1.push (element) .equals (element)" genau? Wie ist es mit der Redundanz umgegangen?In der Angebots-Methode, was macht "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 

Antwort

0

stk1.push(element).equals(element) gibt einen boolean Wert. Das ist der Grund, warum es in der Bedingung einer if Aussage in erster Linie erscheinen kann.

Da Ihr if Anweisung gibt true wenn stk1.push(element).equals(element)true ist und gibt false sonst, können Sie einfach zurückgeben den boolean Wert stk1.push(element).equals(element) und die Beseitigung der if Aussage.

+1

Das macht Sinn! Vielen Dank!! – controlledChaos

+0

@controlledChaos Gern geschehen! – Eran

Verwandte Themen