PythonとJavaの配列(リスト)の違いと共通点をやさしく解説!

こんにちは。ゆうせいです。

プログラミングの中で頻出する「配列」。
たくさんのデータをまとめて扱うときにとっても便利な仕組みですよね!

でも、PythonとJavaではこの配列の扱い方がかなり違うんです。

「PythonのリストとJavaの配列って同じなの?」
「それぞれどう使い分けたらいいの?」

そんな疑問にお答えするために、今回はPythonとJavaにおける配列の考え方と使い方を、初心者にもわかりやすく比較しながら解説していきます!


h2: 配列とは?まずはイメージから!

「配列(array)」とは、同じ種類のデータを並べて格納する箱のようなものです。

たとえば:

[10, 20, 30, 40, 50]

これは5つの数字が順番に並んだ1次元の配列です。
1つ1つの要素にはインデックス(番号)でアクセスします。

例:「2番目の値がほしい」→ インデックス1(0から数える)


Pythonでは「リスト」を使う

Pythonでは、配列のようなものを**リスト(list)**と呼びます。
とても柔軟で、型が違っていてもOK!

リストの作成と使い方

numbers = [10, 20, 30, 40]

print(numbers[0])  # 10(0番目)
print(numbers[2])  # 30(2番目)

numbers.append(50)  # 要素を追加
print(numbers)  # [10, 20, 30, 40, 50]

  • append():リストの最後に要素を追加するメソッド
  • numbers[インデックス]:要素を取得

リストの特徴(Python)

特徴説明
可変長(長さの変更可)要素を追加・削除できる
型が自由数値と文字列を混ぜてもOK
使いやすく高機能sort()reverse()などの操作が簡単

Javaでは「配列」か「ArrayList」を使う

Javaでは基本的に配列(array)を使いますが、可変長のリストを使いたい場合はArrayListというクラスを使います。

配列(array)の使い方

int[] numbers = {10, 20, 30, 40};

System.out.println(numbers[0]);  // 10
System.out.println(numbers[2]);  // 30

  • int[]:整数型の配列を定義
  • numbers[インデックス]:要素を取得

ただし、Javaの配列は固定長です。一度サイズを決めると増やせません。

可変長ならArrayList!

import java.util.ArrayList;

ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);

System.out.println(numbers.get(0));  // 10



  • add():要素を追加
  • get(インデックス):要素を取得

Pythonのlist vs Javaの配列とArrayList

比較項目PythonのリストJavaの配列JavaのArrayList
サイズの変更できるできない(固定長)できる
型の混在OKNG(すべて同じ型)NG(Genericsで指定)
要素アクセスlist[インデックス]array[インデックス]list.get(インデックス)
要素の追加方法append()不可add()
メソッドの充実度多い少ない多い

具体例で比較してみよう!

「1から5までの数を順に格納して表示」

Python:

numbers = []
for i in range(1, 6):
    numbers.append(i)

print(numbers)

Java:

import java.util.ArrayList;

ArrayList<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 5; i++) {
    numbers.add(i);
}

System.out.println(numbers);


どちらを使うべき?

  • 学習や小規模な処理にはPythonのリストがとても直感的で便利!
  • 大規模開発や型安全性が必要な場合はJavaの配列やArrayListが役立ちます。

今後の学習のポイント

次のステップでは、以下のテーマに進むと配列の応用力がつきます!

  • 2次元配列の使い方(行列のようなデータ構造)
  • リスト内包表記(Python)Streams API(Java)を使った効率的な処理
  • *辞書(Pythonのdict)とMap(JavaのHashMap)の違いと使い方

どの言語でも「データをまとめて扱う力」はプログラミングの基礎中の基礎です。わからない部分があれば、どんどん質問してくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。