比如说一个方法要返回一个List list, list=A() 是刚开始就初始化为new ArrayList() ,每次判断是否为空,才生成一个list 那种效率高点呢? 欢迎详细讨论,哈~~~
解决方案 »
- netbeans打开源代码后cpu转不停,怎么分析
- 关于jfreechart绘图的一个具体问题
- 倾家当产寻求图片保存到本地计算机的解决方案
- ???求一方法
- ImageIO out of memory
- java.lang.OutOfMemoryError如何解决及查出在那个程序出错????
- 菜鸟跪求!! 有关JAVA中main( String[] args)函数和c语言中main(args[])参数的区别??
- 有多年c/c++编程经验,请教如何安排java的学习课程?
- 哪位★娇娃★能提供jdk>=1.2的中文帮助文档下载?
- Exception in thread "main" java.lang.NoClassDefFoundError: hw
- 想写一个聊天室的程序,关于数据传输的问题??
- 这个程序我看不出怎么能规定每行都是60.请大神指点(两天干坐没想出来)
if (x == 1)
和
if (x == 1 && x > foo())
其中,
public int foo() {
try {
Thread.sleep(10000);
} catch (Exception ex) {
}
return 100;
}
同样道理,构造函数也可以写的很复杂,也可以sleep
1.List list = new ArrayList()
2.if(list == null) {
list = new ArrayList();
}
list = list == null ? new ArrayList() : list;orA() {
return list == null ? new ArrayList() : list;
}
List list = new ArrayList()
return list;
}
if (l == null)
{
l = new ArrayList();
}还有别的做法?
{
List list = null;
list = A();
return (list == null)?new ArrayList():list;
}
1.
List list = null;
if(list == null){
list = new ArrayList();
}2.
List list = new ArrayList();这第一种情况肯定比第二种情况要费时,因为多加了一个if嘛,而根据list的值不同时间差异也会缩小是吧,所以这里的时间完全可以忽略不计。
是否要判断这应该是跟你的业务挂√的。
下面写一个小DEMO。public class Order { private String name;
//
private Set<OrderLine> orderLines = new HashSet<OrderLine>(); public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Set<OrderLine> getOrderLines() {
//
return Collections.unmodifiableSet(orderLines);
} public void addOrderLine(OrderLine orderLine) {
//
orderLines.add(orderLine);
} public void setOrderLines(Set<OrderLine> orderLines) {
// this.orderLines = orderLines;
// 为什么没有向上面来做,是因为如果是这样赋值的话那么两个对象就是同一个引用了。
// 用户修改orderLines,this.orderLines也同样会被修改。
// 而提供这个类希望用户通过该类提供的接口来修改orderLines。
orderLines.addAll(orderLines);
}}
List list = null;
list = A();
if(list == null){
list = new ArrayList();
}
是这样哦。
这我就有几个疑问了。首先A方法是你自己写的还是别人的。
而且首先要确定A是否可能会返回null。呵呵。
如果会返回那当然要判断。
而且如果两个方法都是你自己写的话,那你自己可以根据实际情况来设计你自己的代码啊。
这样if不也会根据实际情况来改变吗?
在一般开源项目中,如果一个方法会返回什么。就比如返回list,在什么情况可能为null。
或者isEmpty() == true。这种情况都会有详细的解说。如果这些都没有,你无法得知在什么情况下会返回什么,那加上if也是买保险。