【问题标题】:In the offer method, what does "return stk1.push(element).equals(element)" do?在offer方法中,“return stk1.push(element).equals(element)”是做什么的?
【发布时间】:2018-05-17 03:50:55
【问题描述】:

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

【问题讨论】:

    标签: java binary stack queue push


    【解决方案1】:

    stk1.push(element).equals(element) 返回一个boolean 值。这就是它首先出现在if 语句条件中的原因。

    由于您的if 语句在stk1.push(element).equals(element)true 时返回true 并返回false,否则您可以简单地返回booleanstk1.push(element).equals(element) 并去掉if 语句。

    【讨论】:

    • 有道理!谢谢!!
    猜你喜欢
    • 2019-03-21
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2023-03-20
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多