もともとRubyを使用していたのですが、最近Javaを使用する機会が増えたため学習を始めました。その過程で、配列やコレクションの扱いに苦労したので、それに関する記事をまとめました。
1. Javaの配列
Javaの配列は固定の長さのデータ構造です。RubyのArrayと比較すると、サイズが可変ではない点が大きな違いです。
例: int型の配列を作成し、要素を格納
int[] numbers = new int[3];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
2. Javaのリスト (List)
Javaのリストは、RubyのArrayのようなものと考えて良いでしょう。要素の追加、削除、検索などが可能です。JavaのListはインターフェースで、具体的なクラスにはArrayList
, LinkedList
などがあります。
例: ArrayList
の使用例
import java.util.ArrayList;
import java.util.List;
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
fruits.remove(1); // "banana"を削除
3. Javaのセット (Set)
重複する要素を持たないコレクションです。HashSet
, LinkedHashSet
, TreeSet
などの実装があります。
List
と違って要素の順序が保証されません。その代わり要素の存在を高速に確認できるらしいです。
例: HashSet
の使用例
import java.util.HashSet;
import java.util.Set;
Set<String> uniqueFruits = new HashSet<>();
uniqueFruits.add("apple");
uniqueFruits.add("apple"); // 重複しても追加されない
4. Javaのマップ (Map)
RubyのHashに近いです。キーと値のペアの集合です。HashMap
, LinkedHashMap
, TreeMap
などの実装があります。
例: HashMap
の使用例
import java.util.HashMap;
import java.util.Map;
Map<String, Integer> fruitPrices = new HashMap<>();
fruitPrices.put("apple", 100);
fruitPrices.put("banana", 80);
int applePrice = fruitPrices.get("apple");
まとめ
- Javaの配列は固定サイズで、RubyのArrayよりも柔軟性が低い。
- Javaの
List
はRubyのArrayのようなもの。ArrayList
やLinkedList
などが実装として存在。 - Javaの
Set
は重複要素を持たない。 - Javaの
Map
はキーと値のペアの集合。RubyのHashに似ている。
Javaのコレクションフレームワークは非常に広く、これ以外にも存在しているようですが、とりあえずこのくらいにしておきます。