从java中的列表返回一个元素

时间:2016-05-28 11:16:47

标签: 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;
    }

    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;
    }
}

2 个答案:

答案 0 :(得分:2)

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

在调试代码时,您确实获得了一些优势,因为您可以在return getTheLastElement2语句上设置断点,并且知道它总是会被命中。这与getTheLastElement形成对比,您需要两个断点来检查返回值。

请注意,第一个示例中的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;
}

答案 1 :(得分:1)

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

相关问题