Setと重複しない要素
重複なしで要素を保存する
「Setと重複しない要素」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。
Setとは
Setは、各項目が一意である順序なしのコレクションです。重複を存在させたくない場合に使う便利な道具です。👍
Setを作成する
値を波かっこで囲むとSetを作成できます。Dartは項目を見て、これがMapではなくSetだと判断します。
var colors = {'red', 'green', 'blue'};空のSetには型が必要
空の波かっこはSetではなく、空のMapを意味します。空のSetを作るには、Dartが意図を把握できるよう型を記述してください。
var tags = <String>{};重複は自動的に消える
すでに存在する値を追加しても、何も変わりません。Setは各項目を1つだけ保持し、重複を静かに取り除きます。
var nums = {1, 2, 2, 3};項目を追加する
addを呼び出して値を追加します。すでに存在する値を追加しても、Setは変わらず、エラーも発生しません。
var s = <int>{};
s.add(5);
s.add(5);項目を削除する
removeを使うと、値を削除できます。項目が存在して削除できた場合はtrue、存在しなかった場合はfalseを返します。
var s = {1, 2, 3};
s.remove(2);含まれているか確認する
containsメソッドは、はい・いいえで答えられる質問にすばやく答えます。この高速な検索こそが、Setの大きな強みです。
var s = {'a', 'b'};
print(s.contains('a'));大きさを調べる
lengthプロパティを使うと、現在Setに含まれている一意な項目の数がわかります。
var s = {1, 1, 2, 3};
print(s.length);Setに順序はない
Set内の項目の順序を当てにしないでください。安定した順序が必要な場合は、代わりにListを使います。
ListからSetへ
リストをSetで囲むと、重複をすぐに取り除けます。値を重複排除する最もすっきりした方法です。
var unique = {1, 2, 2, 3}.toList();Setをループする
SetはIterableなので、for-inループを使って一意な項目を1つずつすべて処理できます。
for (var c in {'red', 'blue'}) {
print(c);
}確認問題
同じ値をSetに2回追加すると、どうなりますか。
まとめ
よくできました。Setは一意で順序のない項目を保持し、add、remove、containsを高速に実行できます。重複が不要な場合はSetを使いましょう。🎉
よくある質問
「Setと重複しない要素」レッスンは無料ですか?
はい。「Setと重複しない要素」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。
「Setと重複しない要素」で何を学びますか?
重複なしで要素を保存する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Dart Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Setと重複しない要素」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDart Academyレッスンでコードを書いて実行できますか?
はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。