プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

DartのLinkedHashMapにキーが存在するか確認する

この記事は 2026 年 10 月 8 日に投稿しました。

目次

  1. はじめに
  2. DartのLinkedHashMapにキーが存在するか確認する
  3. containsKeyメソッドの基本的な使い方
  4. 値がnullの場合にキーの有無を確認する
  5. キーを判定するときの注意点
  6. おわりに

1. はじめに

こんにちは、iOS のエディタアプリPWEditorとその後継PWEditorNextの開発者の二俣です。
2018年5月から毎日技術ブログを更新しています。

今回はDartのLinkedHashMapのcontainsKeyメソッドについてです。

containsKeyメソッドを使うと、指定したキーがLinkedHashMapに含まれているかどうかを確認できます。戻り値はbool型で、キーが存在すればtrue、存在しなければfalseです。

目次へ

2. DartのLinkedHashMapにキーが存在するか確認する

DartのLinkedHashMapは、キーと値の組をキーの挿入順に反復できるMapの実装です。containsKeyメソッドはMapから継承されており、指定したキーがMapに登録されているかを調べます。

メソッドの型は以下のとおりです。

bool containsKey(Object? key)

引数には存在を調べるキーを指定します。戻り値は、キーが登録されている場合はtrue、登録されていない場合はfalseです。引数の型はObject?なので、Mapのキーの型と異なる値を渡しても呼び出せます。その場合、通常は一致するキーがないためfalseになります。

目次へ

3. containsKeyメソッドの基本的な使い方

containsKeyを使って、LinkedHashMapに特定のキーがあるか確認できます。

import 'dart:collection';

void main() {
  final LinkedHashMap<String, int> scores = LinkedHashMap<String, int>()
    ..['太郎'] = 80
    ..['花子'] = 95;

  print(scores.containsKey('太郎')); // true
  print(scores.containsKey('次郎')); // false
}

太郎はキーとして登録されているためtrue、次郎は登録されていないためfalseになります。値を取得する前にキーの存在を確認したい場合などに利用できます。

final String name = '花子';

if (scores.containsKey(name)) {
  print(scores[name]); // 95
}

目次へ

4. 値がnullの場合にキーの有無を確認する

Mapの値の型がnullableである場合、キーが存在していて値がnullのことがあります。値を取得した結果だけでは、キーが存在しないのか、値がnullなのかを区別できません。containsKeyを使えば、キーの有無を確認できます。

import 'dart:collection';

void main() {
  final LinkedHashMap<String, int?> values = LinkedHashMap<String, int?>()
    ..['設定済み'] = 10
    ..['未設定'] = null;

  print(values['未設定']); // null
  print(values.containsKey('未設定')); // true
  print(values.containsKey('存在しない')); // false
}

この例では、未設定の値はnullですが、キー自体は登録されています。値がnullableのMapでは、キーの存在を判定する目的でcontainsKeyを使うと明確です。

目次へ

5. containsKeyメソッドを使うときの注意点

キーとしての同一性で判定される

containsKeyは、Mapがキーを比較する方法に従って判定します。通常のLinkedHashMapでは、キーの==とhashCodeに基づいてキーを識別します。独自クラスをキーにする場合は、==とhashCodeを適切に実装してください。

キーの存在と値の状態は別

キーが登録されていても、対応する値がnullの場合があります。値がnullableのMapでキーの有無を知りたいときは、値との比較ではなくcontainsKeyを使用します。

判定後にMapが変更される可能性

containsKeyで確認した直後に別の処理がMapを変更すると、そのキーの状態が変わることがあります。複数の処理が同じMapを変更する設計では、確認と利用の間に変更が起きないようにしてください。

リファレンス

Dart

DartPad

LinkedHashMap

Map.containsKey

目次へ

6. おわりに

DartのLinkedHashMapでcontainsKeyメソッドを使うと、指定したキーがMapに登録されているかをbool型で確認できます。

値がnullになる可能性があるMapでは、値を取得するだけではキーの有無を判断できません。containsKeyを使えば、キーが存在するかどうかを明確に判定できます。

キーの存在を確認してから処理を行いたい場合に活用してください。

目次へ


私が技術者として所属している ニューラルでは、組み込み・制御系ソフトウェアを中心に、モバイルアプリや業務アプリなど、さまざまなソフトウェアの開発を行っています。

また、iOS(Swift/SwiftUI)やWindows(C#)をはじめとしたアプリケーション開発、Webシステムの開発などにも対応しています。

ソフトウェア開発に関するご相談や、一緒に開発に取り組んでいただける技術者の募集については、お気軽にお問い合わせください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688