0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Javaの配列やコレクション(Rubyとの比較)

Last updated at Posted at 2023-09-03

もともと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のようなもの。ArrayListLinkedListなどが実装として存在。
  • JavaのSetは重複要素を持たない。
  • JavaのMapはキーと値のペアの集合。RubyのHashに似ている。

Javaのコレクションフレームワークは非常に広く、これ以外にも存在しているようですが、とりあえずこのくらいにしておきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?