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)の違いと使い方
どの言語でも「データをまとめて扱う力」はプログラミングの基礎中の基礎です。わからない部分があれば、どんどん質問してくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
