相关疑难解决方法(0)

何时在Java中使用LinkedList而不是ArrayList?

我一直只是一个人使用:

List<String> names = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码.

何时应该LinkedList使用,ArrayList反之亦然?

java collections linked-list arraylist

2974
推荐指数
27
解决办法
102万
查看次数

为什么ArrayList的最大数组大小是Integer.MAX_VALUE - 8?

我正在研究Java 8文档ArrayList.我得到的最大数组大小定义为Integer.MAX_VALUE - 8平均值2 ^ 31 - 8 = 2 147 483 639.然后,我的重点是,为什么8减去或why not less than 8more than 8减去?

/**
 * The maximum size of array to allocate.
 * Some VMs reserve some header words in an array.
 * Attempts to allocate larger arrays may result in
 * OutOfMemoryError: Requested array size exceeds VM limit
 */
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
Run Code Online (Sandbox Code Playgroud)

我得到了一些相关的答案,但没有实现我的目标.

  1. Java数组是否具有最大大小?
  2. 列表最多可以容纳多少数据
  3. 为什么我无法创建大尺寸的数组?

有些人根据文档给出了一些逻辑"Some …

java arrays arraylist

14
推荐指数
2
解决办法
3342
查看次数

Python中列表的大小调整因素是什么

例如,ArrayListJava中的s的大小调整系数为2。当ArrayList包裹的数组空间不足时,该数组的所有元素都将转移到新数组,该数组的大小是原始数组的2倍。

由于Python列表/数组自然是动态的,因此它们的大小调整因素是什么?还是他们使用其他缩放方法?如果是这样,那是什么方法?它的渐近运行时是什么(大O)?

python list asymptotic-complexity data-structures python-3.x

6
推荐指数
1
解决办法
855
查看次数

Matlab使用什么算法动态调整向量和矩阵的大小?

运行此代码:

n = 5;
x = zeros(n, 1);
for ix=1:10
   x(ix) = rand();
   disp(getfield(whos('x'), 'bytes'))
end
Run Code Online (Sandbox Code Playgroud)

输出:

40
40
40
40
40
48
56
64
72
80
Run Code Online (Sandbox Code Playgroud)

这似乎表明,当Matlab调整矢量大小时,它会调整大小以使其具有所需的空间,而不是更多.所以,一次只有一个元素.

将此与Sun的Java Array实现中方法进行对比,后者分配了足够的空间,以便每次调整都不需要在初始边界之上的每个赋值上进行.显然,由于Matlab不是开源的,所以没有办法告诉100%他们做了什么,但有没有更好的方法来了解调整大小是如何完成的?上面的代码不是估计这个的好方法吗?

matlab memory-management matrix dynamic-arrays

4
推荐指数
1
解决办法
551
查看次数

Big-O运行时将N个项添加到ArrayList中

假设我ArrayList在Java中添加了N个项目.最坏情况下的运行时间是多少?我知道添加单个项目可能是O(N),因为数组可能需要调整大小.它不会调整N次,因为我添加N个项目甚至是因子N因为(AFAIK)ArrayList每次调整大小时容量增加一些因素.这意味着某种log(N)数量的调整大小.所以看起来应该是O(N log(N))来插入N个项目,但我对此并不完全确定.我正在看的旧计算机科学考试的答案为O(N ^ 2).我错过了什么吗?

int newCapacity = (oldCapacity * 3)/2 + 1;(从这个答案)

java big-o arraylist

3
推荐指数
1
解决办法
2845
查看次数

存储大对象时Java中的ArrayList

我在Java中遇到了关于arraylist的这个采访问题,我觉得它很有意思,但不知道如何回答它:

What attention should be paid when using arrayList to store large object?
Run Code Online (Sandbox Code Playgroud)

我想知道我们是否应该在时间/空间复杂性方面回答这个问题?

谢谢

java

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