2016-10-25 4 views
-1

もし私が数多くの要素と膨大な数の要素を持つ配列を持っていたら、コードの実行速度は遅くなりますか?私はちょうどそれらのいくつかを使用している場合でも。私は大きな配列を持っている場合、コードが遅く実行されますか?

let'sは、私はそれを行うために、私は9999999に入れたり、それは大丈夫であることは問題でしょう

int[] array = new int [9999999]; 

を持っていることを言うの?配列の値を置かないと、 "ローカル変数が初期化されていない可能性があります"と表示されます。基本的に無制限の数字を挿入することができるようにしたい。

+4

「基本的に無制限の数字を挿入することが可能です。」[コレクション](https://docs.oracle.com/javase/tutorial/collections/)を使用してください。配列の長さは固定で、 'List'、' Vector'などは動的です。 – BackSlash

+0

質問に答えるには:はい、時間がかかります。配列を初期化するには、O(n)時間がかかります。 – Keiwan

答えて

0

あなたは、配列の代わりにListをお勧めします。前者は、ニーズに合わせて動的に拡張できるデータ構造です。後者は、開始する前にサイズを選択する必要があります。

パフォーマンスがあなたのコードでやる他のものの多くによって影響を受けることになりますが、私は、これはそれらのいずれかになりますことを疑います。あなたを含め、誰も1つの行から誰にも分かりません。

+0

私は 'int [] int = new int [9999999]'を持っています。そして、私は 'int [i] = Double.parseDouble(part [i])'を実行することで数値を追加します。しかし、代わりにそれをリストにしたいと思いますか? – maaax

0

よく試してみてください。あなたのメモリの設定によって、このような

public static void main(String[] args) { 
    int []x =new int[999_999_999]; 
} 

として大きすぎる配列を作成する場合は、すぐにOutOfMemoryErrorをスローします。

しかし、たとえそれが1を投げていない場合、それはまだその配列を割り当てるには時間がかかります。

より良いアプローチは、Listなどの動的成長構造を使用することです。

しかし、最善のアプローチは、あなたが可能な場合は、巨大な配列にすべてを置く必要はありませんようにあなたのコード/アルゴリズムを設計することです。

関連する問題