Javaその他

List, Map, Setでの登録順を確認してみた

Javaでは、コレクションフレームワークという複数の要素のデータを扱うための機能があり、List、Set、Mapなどのインタフェースがある。

コレクションフレームワークについては、以下のサイトを参照のこと。
https://ittoybox.com/archives/206

今回は、List、Set、Mapの各インタフェースについて、代表的なクラスのデータの格納順がどうなるか確認してみたので、そのサンプルプログラムを共有する。



前提条件

下記記事のIntelliJ IDEA Community版をダウンロード済であること。

IntelliJ IDEAをインストールしてみた「IntelliJ IDEA(インテリジェイ アイディア)」という、Eclipseと同等の機能をもつJava用統合開発環境を使って、Sp...

また、下記のように、「demoJava」というJavaプロジェクトを作成済であること。
demoJavaプロジェクト

なお、IntelliJ IDEA上でJavaプロジェクトを作成する方法については、IntelliJ IDEA Community版をダウンロードする記事内の、「IntelliJ IDEA上でのJavaプロジェクトの作成・実行」を参照のこと。



フリーランスエンジニアのエージェントは就業中でも無料で登録できるITエンジニアには、フリーランスという働き方がある。フリーランスとは、会社や団体などに所属せず、仕事に応じて自由に契約する人のこ...

サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、今回新規で作成したプログラムである。

DemoList.javaの内容は以下の通りで、ArrayList・LinkedListの格納順を調べるようになっている。



また、DemoSet.javaの内容は以下の通りで、HashSet・TreeSet・LinkedHashSetの格納順を調べるようになっている。



さらに、DemoMap.javaの内容は以下の通りで、HashMap・TreeMap・LinkedHashMapの格納順を調べるようになっている。



サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) DemoList.javaの実行結果は以下の通りで、ArrayList・LinkedListとも、登録した順番にデータが格納されることが確認できる。
DemoListの実行結果

2) DemoSet.javaの実行結果は以下の通りで、TreeSetは値の昇順に、LinkedHashSetは登録した順番に、それぞれデータが格納されることが確認できる。
DemoSetの実行結果

3) DemoMap.javaの実行結果は以下の通りで、TreeMapはキー値の昇順に、LinkedHashMapは登録した順番に、それぞれデータが格納されることが確認できる。
DemoMapの実行結果

要点まとめ

  • Javaでは、コレクションフレームワークという複数の要素のデータを扱うための機能があり、List、Set、Mapなどのインタフェースがある。
  • Listは複数の要素の順番を保持するコレクションで、ArrayList・LinkedListとも、登録した順番にデータが格納されるが、要素の追加や削除が多いときはLinkedList、要素の参照が多いときはArrayListが向いている。
  • Setは重複要素を持たない要素の集合で、TreeSetは値の昇順に、LinkedHashSetは登録した順番に、それぞれデータが格納される。
  • Mapはキーと要素とのマッピングを表すデータ構造で、TreeMapはキー値の昇順に、LinkedHashMapは登録した順番に、それぞれデータが格納される。