更快地指定字符数组填充?

时间:2014-08-08 16:16:25

标签: java arrays char

import java.util.Arrays;


public class ArraySpecification {
    public static void main(String args[]) {
        char[] correctLetters = {'a','b','c','d','e'};
        Arrays.fill(correctLetters, 0, 1, 'z');
        Arrays.fill(correctLetters, 2, 3, 'z');
        Arrays.fill(correctLetters, 4, 5, 'z');
        System.out.println(correctLetters);
    }
}

我只是想问一下,有什么方法可以更快,更有效地完成这项工作?

3 个答案:

答案 0 :(得分:2)

是的,但是没有那么好而不是支付调用静态方法的成本/开销,你可以使用保证O(1) speed的数组索引直接更改char:

<强>样品:

        char[] correctLetters = {'a','b','c','d','e'};
        correctLetters[0] = 'z';
        correctLetters[2] = 'z';
        correctLetters[4] = 'z';

答案 1 :(得分:2)

好吧,除非你详细说明在特定索引处具有特定字母(例如'z')所需的逻辑,否则无话可说。

为什么要对Arrays.fill感到烦恼?只需根据需要初始化数组:)!

char[] correctLetters = {'z','b','z','d','z'};

答案 2 :(得分:0)

你可以用这个循环获得相同的结果,我认为这更简单:

for (int i = 0; i < correctLetters.length; i += 2) {
    correctLetters[i] = 'z';
}