• ベストアンサー

配列を扱うのが面倒(要素数とか考えるのが)で、ついArrayListや

配列を扱うのが面倒(要素数とか考えるのが)で、ついArrayListやHashMapを多用してしまうのですが、何かまずいことがあるでしょうか?重かったりするのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nobuoka
  • ベストアンサー率69% (23/33)
回答No.1

> 重かったりするのでしょうか? そうですね、固定長のメモリ領域を使用する配列と比べると、ArrayList や HashMap は要素数の増加に応じてメモリを割り当てる必要があるため処理が遅くなったり、メモリ使用量そのものも配列と比べて大きかったりというデメリットはあります。 そのため、配列を使用できるような状況でしたら配列を使用した方がいいと思います。 ただ、ArrayList や HashMap を使ったからといって配列を使用する場合と比べて格段に処理が遅くなったりメモリ使用量が大きくなったりするということはないと思います (自分で計測したことはないので詳しくはわかりませんが) ので、なんでもかんでも配列を使うべきというわけでもなくて、必要に応じて ArrayList や HashMap、配列を使い分けるといいと思います。 (例えば要素数があらかじめわからない場合などは ArrayList を使えばいいわけですし)

その他の回答 (2)

  • suzukiyo
  • ベストアンサー率26% (11/42)
回答No.3

ArrayListやHashMapはスレッドセーフでないので、スレッドを使用した場合に問題が発生します。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

厳密に言えば配列の方が速いのですが、人間が気にする程の 差はありません。特定のメソッドで配列しか受け入れない ものもあるので、ArryList⇔配列の変換方法さえ知って いれば問題ありません。

関連するQ&A