专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > J2SE

做一次if比较 和一次new操作 哪个需要花费的时间长一些 欢迎拍砖~该怎么解决

发布时间:2010-06-05 05:30:42 文章来源:www.iduyao.cn 采编人员:星星草
做一次if比较 和一次new操作 哪个需要花费的时间长一些 欢迎拍砖~~
比如说一个方法要返回一个List list, list=A() 是刚开始就初始化为new ArrayList() ,每次判断是否为空,才生成一个list 那种效率高点呢? 欢迎详细讨论,哈~~~

------解决方案--------------------
new操作费时
------解决方案--------------------
无解
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 = A();
list = list == null ? new ArrayList() : list;

or

A() {
return list == null ? new ArrayList() : list;
}
------解决方案--------------------
A() {
List list = new ArrayList()
return list;
}
------解决方案--------------------
List l = YourMethod();
if (l == null)
{
l = new ArrayList();
}

还有别的做法?
------解决方案--------------------
这题好有意思。
1.
List list = null;
if(list == null){
list = new ArrayList();
}

2.
List list = new ArrayList();

这第一种情况肯定比第二种情况要费时,因为多加了一个if嘛,而根据list的值不同时间差异也会缩小是吧,所以这里的时间完全可以忽略不计。
是否要判断这应该是跟你的业务挂√的。
下面写一个小DEMO。
Java code

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

}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: