我很快就会教"Java崩溃课程".虽然假设观众成员会知道Big-O表示法可能是安全的,但假设他们知道各种集合实现的各种操作的顺序是什么可能是不安全的.
我可以花时间自己生成一个摘要矩阵,但如果它已经在公共领域的某个地方出现,我肯定想重复使用它(当然还有适当的信用.)
任何人有任何指针?
我很惊讶在Java源代码中看到System.arraycopy是一个本机方法.
当然原因是因为它更快.但是什么原生技巧是能够使用的代码使其更快?
为什么不循环遍历原始数组并将每个指针复制到新数组 - 当然这不是那么缓慢和麻烦?
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 是一种本地方法.
这种方法的时间复杂度是多少?
我发现这个问题的其他条目涉及具体方法,但没有全面的.我想验证自己对这种数据结构中最常用的方法的理解:
O(1) - 恒定时间:
isEmpty()
add(x)
add(x, i)
set(x, i)
size()
get(i)
remove(i)
Run Code Online (Sandbox Code Playgroud)
O(N) - 线性时间:
indexof(x)
clear()
remove(x)
remove(i)
Run Code Online (Sandbox Code Playgroud)
它是否正确?谢谢你的帮助.