相关疑难解决方法(0)

大O,你如何计算/近似它?

大多数拥有CS学位的人肯定会知道Big O代表什么.它可以帮助我们衡量算法的实际效率(如何),如果你知道你试图解决的问题属于哪个类别,你可以弄清楚是否仍然可以挤出那么少的额外性能.1

但我很好奇,如何计算或近似算法的复杂性?

1 但正如他们所说,不要过度,过早优化是所有邪恶的根源,没有正当理由的优化也应该得到这个名称.

algorithm optimization performance complexity-theory big-o

852
推荐指数
20
解决办法
41万
查看次数

检查Java中的集合是否为空:哪种方法最好?

我有两种方法可以检查List是否为空

if (CollectionUtils.isNotEmpty(listName)) 
Run Code Online (Sandbox Code Playgroud)

if (listName != null && listName.size() != 0)
Run Code Online (Sandbox Code Playgroud)

我的拱门告诉我,前者比后者好.但我认为后者更好.

有人可以澄清一下吗?

java collections is-empty

69
推荐指数
6
解决办法
14万
查看次数

为什么list.size()> 0比Java中的list.isEmpty()慢?

为什么list.size()>0list.isEmpty()Java 慢?换句话说,为什么isEmpty()更好size()>0

当我查看实现时ArrayList,看起来速度应该是相同的:

ArrayList.size()

    /**
     * Returns the number of elements in this list.
     *
     * @return the number of elements in this list
     */
    public int size() {
      return size;
    }
Run Code Online (Sandbox Code Playgroud)

ArrayList.isEmpty()

    /**
     * Returns <tt>true</tt> if this list contains no elements.
     *
     * @return <tt>true</tt> if this list contains no elements
     */
    public boolean isEmpty() {
        return size == 0;
     }
Run Code Online (Sandbox Code Playgroud)

如果我们只是编写一个简单的程序来获取两种方法所需的时间,那么在所有情况下size()都需要更多的isEmpty()时间,为什么会这样呢?

这是我的TestCode;

import …
Run Code Online (Sandbox Code Playgroud)

java list

49
推荐指数
5
解决办法
6万
查看次数

if(listStr.size == 0){与if(listStr.isEmpty()){

List<String> listStr = new ArrayList<String>();

if(listStr.size == 0){

}
Run Code Online (Sandbox Code Playgroud)

if(listStr.isEmpty()){

}
Run Code Online (Sandbox Code Playgroud)

在我看来,使用的一个好处listStr.isEmpty()是它不检查列表的大小,然后将其与零进行比较,它只是检查列表是否为空.是否还有其他优点,我经常看到if(listStr.size == 0)而不是if(listStr.isEmpty())代码库?有没有理由以这种方式检查我不知道?

java

27
推荐指数
3
解决办法
2万
查看次数

如果在if条件下使用,则hashmap的isEmpty()和size()之间有什么区别?

我必须处理NullPointerException正在发生的情况Hashmap。我应该在条件内使用map.isEmpty()或(map.size() > 0if吗?

哪一个更好?

java

1
推荐指数
2
解决办法
233
查看次数