在java中从列表返回元素

在java中从列表返回元素,java,list,return,Java,List,Return,您能告诉我使用getTheLastElement2()而不是getTheLastElement()有什么好处(如果有好处的话)?我的意思是,当返回结果更容易时,为什么需要创建引用obj import java.util.ArrayList; import java.util.List; public class Test { List list; Test(ArrayList list){ this.list = list; }

您能告诉我使用
getTheLastElement2()
而不是
getTheLastElement()
有什么好处(如果有好处的话)?我的意思是,当返回结果更容易时,为什么需要创建引用
obj

import java.util.ArrayList;
        import java.util.List;

public class Test {
    List list;

    Test(ArrayList list){
        this.list = list;
    }

    public Object getTheLastElement(){
        if (list.isEmpty())
            return null;
        else
            return list.get(list.size()-1);
    }

    public Object getTheLastElement2(){
        Object obj;
        if (list.isEmpty())
            obj = null;
        else
            obj = list.get(list.size()-1);
        return obj;
    }
}

不,没有优势。另外,您应该返回
list.get(list.size()-1)

这两种实现之间没有区别:
obj
引用可能会被优化掉

在调试代码时,您确实会得到一点好处,因为您可以在
getTheLastElement2
return
语句上设置断点,并且知道它总是会被命中。这与
getTheLasteElement
相反,在这里需要两个断点来检查返回值

请注意,第一个示例中的
else
是多余的:

public Object getTheLastElement(){
    if (list.isEmpty()) {
        return null;
    }
    return list.get(list.size()-1);
}
您可以进一步将其压缩为单个三元表达式:

public Object getTheLastElement(){
    return !list.isEmpty() ? list.get(list.size()-1) : null;
}

这两种方法都不起作用。您必须返回
size-1
th元素,而不仅仅是
size
。您可能还想看看其中讨论了函数中单个退出点与多个退出点的优缺点。在您的代码示例中,我建议
getthelasteElement()
更具可读性,如果没有
else
语句,则更具可读性。否则会影响执行时间吗?@rEx否,它是冗余的,编译器将消除它。就执行速度而言,这些都是相同的。