越来越多的原始数组在java中

Kal*_*nen 0 java arrays

我正在学习Android,同时提高我的效率知识.我正在编写一个密码生成器,它使用特定规则从一组字符生成随机密码.我有一个数组,我打算存储字符.数组的大小为X,这是所有情况下可能的字符数.然后,我向阵列添加最多三组附加字符.由于我无法调整数组的大小,因此每次使用复制循环或ArrayCopy或类似工具时,我都必须复制并重新创建它.

我应该这样做还是切换到例如ArrayList?当然,在现实生活中也不会出现问题,因为总共会有大约70个字符,但我对此感兴趣.

谢谢大家.

伪代码:

initialize array  
add first set  
if adding second set  
    add second set  
if adding third set  
    add third set  
if adding fourth set  
    add fourth set  
return array
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 5

切换到集合(就像你提到的那样ArrayList),因为它会比创建一个新数组和复制每个插入的值(如果你使用数组必须要做的那样)显着提高效率,因为正如你所指出的,数组是静态大小的创建).

ArrayListJavadoc中说,(部分)

List接口的可调整大小的数组实现.实现所有可选列表操作,并允许所有元素,包括null.除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组的大小.