在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否,它是冗余的,编译器将消除它。就执行速度而言,这些都是相同的。