做一次if比较 和一次new操作 哪个需要花费的时间长一些 欢迎拍砖~~ 比如说一个方法要返回一个List list, list=A() 是刚开始就初始化为new ArrayList() ,每次判断是否为空,才生成一个list 那种效率高点呢? 欢迎详细讨论,哈~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 无解if (x == 1)和if (x == 1 && x > foo())其中,public int foo() { try { Thread.sleep(10000); } catch (Exception ex) { } return 100;}同样道理,构造函数也可以写的很复杂,也可以sleep A方法会返回一个List,但是该List也有可能为null,而我现在这边是要返回一个一个list,不可以为null,不然掉用我方法的项目就会抛异常了,那边又不想做判断,就是这样咯。 你意思是1.List list = new ArrayList()2.if(list == null) { list = new ArrayList(); } 你返回一个List 始终要先new一个list来存数据才行啊。你问的不解 list = A();list = list == null ? new ArrayList() : list;orA() { return list == null ? new ArrayList() : list;} A() { List list = new ArrayList() return list;} List l = YourMethod();if (l == null){ l = new ArrayList();}还有别的做法? 好像这样写也行,你觉得呢? public List<String> Test() { 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不也会根据实际情况来改变吗? A()方法别人写的,有可能返回null。没仔细看帖啊。这贴就结了他把。 这题很能体现Javadoc的作用。在一般开源项目中,如果一个方法会返回什么。就比如返回list,在什么情况可能为null。或者isEmpty() == true。这种情况都会有详细的解说。如果这些都没有,你无法得知在什么情况下会返回什么,那加上if也是买保险。 String类不能克隆吗,怎么办 帮我看看问题在哪儿 有没有什么可以让一张图片绕着某个点旋转的方法? 如何获取HOSTID JAVA核心编程中的例子:为什么这里只能调用paint而不能调用repaint?? java3d——如何实现把鼠标所在点的坐标转化为3d坐标 utf-8如何与unicode相互转换,求示例代码? 请问那位知道纯java访问硬盘的方法? 保存vector中的elements 逼死我了 想写一个聊天室的程序,关于数据传输的问题?? 这个程序我看不出怎么能规定每行都是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也是买保险。