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

目次
- はじめに
- DartのLinkedHashMapからすべての要素を削除する
- clearメソッドの基本的な使い方
- 要素を削除した後のLinkedHashMap
- clearメソッドを使うときの注意点
- おわりに
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を残したい場合は、コピーを作成してから操作します。
リファレンス
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