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 | 
|---|---|---|---|
| サイズの変更 | できる | できない(固定長) | できる | 
| 型の混在 | OK | NG(すべて同じ型) | 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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。 
最新の投稿
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能④
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能③
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能②
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能①