JavaのTreeMapの使い方を現役エンジニアが解説【初心者向け】
初心者向けにJavaのTreeMapの使い方について解説しています。JavaのコレクションのひとつであるMap型の基本、TreeMapとHashMapとの違い、TreeMapの使用例をサンプルコードで見ていきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaのTreeMapの使い方について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まるでしょう。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
TreeMapの使い方について詳しく説明していくね!
お願いします!
TreeMapとは
TreeMapとは、データが自動的にソートされて格納されるクラスです。
Javaには、複数のデータを「キー」と「値」の組によって扱うことのできるMap型というクラスがあります。
Map型を使う場合、それが実装されたクラスを使ってオブジェクトを生成し、TreeMapはそのようなMap型が実装されたクラスを指します。
「キー」と「値」というのは、格納されたそれぞれの変数の「名前」と「データ」のことです。
TreeMapとHashMapの違い
Javaには、TreeMap以外にもMap型が実装されたクラスがあります。
HashMapというものです。
TreeMapとHashMapの違いは、下記の通りです。
- TreeMap → データが自動的に「ソート」されて格納される
- HashMap → データは追加した順番で格納される
「ソート」というのは、並び替える機能を持つ機能であり、TreeMapの場合はキーに基づいてデータの順番が自動的に定められます。
TreeMapの使い方
TreeMapを宣言するには、下記のように記述します。
Map<キーの型名, 値の型名> TreeMap型変数 = new TreeMap<キーの型名, 値の型名>();
「キーの型名」も「値の型名」も基本的には制限はありません。
オブジェクトを生成したら、データを追加したいときは下記のように記述しましょう。
TreeMap型変数.put(キー, 値) ;
キーに対応するデータを取得したい場合には、下記のように記述しましょう。
TreeMap型変数.get(キー);
実際に書いてみよう
それでは、実際にコードを書いてみて、TreeMapの振る舞い確認してみましょう。
import java.util.Map; import java.util.TreeMap; public class TreeMapSample{ public static void main(String[] args){ //TreeMapオブジェクトの生成 Map<String, String> treeMap = new TreeMap<>(); //TreeMapオブジェクトにデータを追加 treeMap.put("B","Brazil"); treeMap.put("A","America"); treeMap.put("C","China"); treeMap.put("E","England"); treeMap.put("D","Denmark"); System.out.println("TreeMapの場合"); for (String nKey : treeMap.keySet()){ System.out.println(treeMap.get(nKey)); } } }
このコードを実行すると、下記のように記述されます。
TreeMapの場合 A:America B:Brazil C:China D:Denmark E:England
キーの順番にソートされていることが確認できるでしょう。
まとめ
この記事では、JavaにおけるTreeMapの使い方について解説しました。
JavaではMap型を使うことが度々あるので、HashMapとTreeMapの違いについて把握しておくと役に立つと思います。
執筆してくれたメンター
メンターOS
AIプログラミングを使って開発を行う。 プログラミング歴は約3年。 Pythonは割と好きな方。JavaもAndroid開発で触れていたりする。 大学では物理学を勉強中。 好きな物理理論は一般相対性理論らしい。 意外と動物が好きだったり、、、。 |
JavaのTreeMapの使い方がよく分かったので良かったです!
ゆかりちゃん、これからも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。