47

Javaでこれほど速いものはありますか? (コーディングが速い)

int [] a = {1..99};

または私はこれに行かなければなりません:

int [] a=new int[100];
for (int i=0;i <100;++i){
a[i]=i;
}
4

8 に答える 8

21

Java 8 を使用する場合の別の方法:

int[] array = new int[100];
Arrays.setAll(array, i -> i + 1);

ラムダ式はセルのインデックスを受け取り、そのセルに入れる値を返します。この場合、セル 0 ~ 99 に値 1 ~ 100 が割り当てられます。

于 2017-04-27T17:12:12.253 に答える
1

ループする必要があるサイズに応じて、小さい場合は次のことができます...

int[] intArray = new int[] {4,5,6,7,8};

すべてを入力する必要がないサイズを推測しているので、ループを作成してそのように設定するのが理にかなっています

于 2013-04-15T17:04:38.370 に答える
0

次のような場合に、Guava ライブラリを使用できます。

public class Test {

public static void main(String[] args) {
    //one liner
    int[] array = toArray(newLinkedList(concat(range(1, 10), range(500, 1000))));

    //more readable
    Iterable<Integer> values = concat(range(1, 10), range(500, 1000));
    List<Integer> list = newLinkedList(values);
    int[] array = toArray(list);

}

public static List<Integer> range(int min, int max) {
    List<Integer> list = newLinkedList();
    for (int i = min; i <= max; i++) {
        list.add(i);
    }

    return list;
}

}

更新: 完全な例はこの投稿から取得数値の範囲で配列を埋める

于 2013-04-15T17:06:56.857 に答える
0

このような長い配列を初期化するには、ループを使用する必要があります。ご想像のとおり、Java にはショートカット メソッドはありません。

于 2013-04-15T17:06:22.787 に答える