セットとは?
CoddyのDartジャーニー「論理とフロー」セクションの一部 — レッスン 17/65。
Set は、一意の要素を順不同で格納するコレクションデータ構造です。重複する値を含むことができ、要素の順序を保持する List とは異なり、 Set は各要素が一度だけ現れることを自動的に保証します。
List と Set の主な違いは、重複をどのように扱うかです。すでに Set に存在する要素を追加しようとすると、単に重複を無視し、その要素のコピーを1つだけ保持します。
// Listは重複を許可します
List<String> fruits = ['apple', 'banana', 'apple', 'orange'];
print(fruits); // ['apple', 'banana', 'apple', 'orange']
// Setは自動的に重複を削除します
Set<String> uniqueFruits = {'apple', 'banana', 'apple', 'orange'};
print(uniqueFruits); // {'apple', 'banana', 'orange'}この自動的な重複削除機能により、ユーザーIDやメールアドレスの保存、あるいは各項目が一度だけ現れるべきコレクションなど、データの一意性を確保する必要がある場合に Set は特に便利になります。
チートシート
Set は、一意の要素を順不同で格納するコレクションであり、重複を自動的に削除します。
// List は重複を許可します
List<String> fruits = ['apple', 'banana', 'apple', 'orange'];
print(fruits); // ['apple', 'banana', 'apple', 'orange']
// Set は自動的に重複を削除します
Set<String> uniqueFruits = {'apple', 'banana', 'apple', 'orange'};
print(uniqueFruits); // {'apple', 'banana', 'orange'}ユーザーIDやメールアドレスの保存など、データの一意性を確保する必要がある場合に Set を使用してください。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
1リスト操作の応用
リストのプロパティ: first と lastリストの状態: isEmpty と isNotEmptyリストの反転リストへの追加: insertリストの削除: removeWhereリスト内の検索: indexOfリストのソートリストのシャッフルまとめ - リストオーガナイザー