在offer方法中,“返回stk1.push(element).equals(element)”是做什么的?

时间:2017-12-03 16:28:01

标签: java binary stack queue push

我试图理解下面给出的第一个offer()方法和第二个offer()方法之间的区别。在Java中使用NetBeans编程时,提示第一个offer方法中的if语句是多余的。配置if语句后,offer方法中的代码现在显示为“return stk1.push(element).equals(element);”。代码行“返回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

1 个答案:

答案 0 :(得分:0)

I = sympy.Integer 返回I(1) / k 值。这就是它首先出现在stk1.push(element).equals(element)声明条件下的原因。

由于boolean语句在ifif时返回true,否则返回stk1.push(element).equals(element),您只需返回true值{ {1}}并删除false语句。