プログラムを書こう!

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

DartのLinkedHashMapからすべての要素を削除する

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

目次

  1. はじめに
  2. DartのLinkedHashMapからすべての要素を削除する
  3. clearメソッドの基本的な使い方
  4. 要素を削除した後のLinkedHashMap
  5. clearメソッドを使うときの注意点
  6. おわりに

1. はじめに

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

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

clearメソッドを使うと、LinkedHashMapに格納されているすべてのキーと値の組を削除できます。メソッドを呼び出した後もMap自体は利用でき、要素を追加し直すことができます。

目次へ

2. DartのLinkedHashMapからすべての要素を削除する

DartのLinkedHashMapは、キーと値の組をキーの挿入順に反復できるMapの実装です。clearメソッドはMapから継承されており、Map内のすべての要素を削除します。

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

void clear()

引数や戻り値はありません。呼び出すと、そのMapに含まれるキーと値の組がすべて削除されます。

目次へ

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

clearを呼び出すと、LinkedHashMapの要素を一度に削除できます。

import 'dart:collection';

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

  print(scores); // {太郎: 80, 花子: 95}

  scores.clear();

  print(scores); // {}
}

clearの呼び出し後、Mapは空になります。キーを一つずつ指定して削除する必要はありません。

目次へ

4. 要素を削除した後のLinkedHashMap

clearが削除するのはMap内の要素です。変数が参照しているLinkedHashMap自体はそのまま使えるため、削除した後に要素を追加できます。

scores.clear();
scores['次郎'] = 72;

print(scores); // {次郎: 72}

clearを実行したMapを別の変数から参照している場合、その参照先も同じMapです。そのため、別の変数からも要素が削除された状態が確認できます。

final anotherReference = scores;
scores.clear();

print(anotherReference); // {}

目次へ

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

Map内のすべての要素が削除される

clearは一部の要素だけを削除するメソッドではありません。呼び出すと、そのMapに含まれるすべてのキーと値の組が削除されます。条件に合う要素だけを削除したい場合は、removeやremoveWhereなどを検討します。

変更不可のMapでは使用できない

変更を許可しないMapに対してclearを呼び出すと、実行時にエラーが発生します。Mapの実装や作成方法に応じて、変更可能かどうかを確認してください。

参照先のMapも変更される

clearは新しい空のMapを返すのではなく、呼び出したMapそのものを変更します。同じMapを参照している変数があれば、その変数から見ても要素が削除されています。元のMapを残したい場合は、コピーを作成してから操作します。

リファレンス

Dart

DartPad

LinkedHashMap

Map.clear

目次へ

6. おわりに

DartのLinkedHashMapでclearメソッドを使うと、Mapに格納されているすべての要素を削除できます。

削除後もMap自体は利用でき、要素を追加し直すことができます。ただし、同じMapを参照している変数からも要素が削除された状態になるため、必要に応じてコピーを使いましょう。

LinkedHashMapの内容をまとめて初期化したい場合に活用してください。

目次へ


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

また、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