[Dart]リストを順序関係なしに比較する方法

Dart

リストを順序に関係なく、要素が同じかどうかで比較する方法を解説します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

順番に関係なく、要素だけ比較するには、「DeepCollectionEqualityクラス」を使います。

このクラスは、リストやセットなどのコレクションを細かく比較するためのクラスです。

実際にこのクラスを使って、順不同で比較するには、次のようにします。

  1. collectionパッケージのインポート
  2. 「DeepCollection.unordered().equals」でインスタンスを生成
  3. 生成したインスタンスに比較するリストを指定

まず、collectionパッケージをインポートします。

import 'package:collection/collection.dart';

次に、「DeepCollection.unordered().equals」でインスタンスを生成します。

var deepEq = DeepCollectionEquality.unordered().equals;

インスタンスは、変数に格納しておきます。

そして、作ったインスタンスに、比較したいリストを指定します。

  var deepEq = DeepCollectionEquality.unordered().equals;
  
  var list1 = <int>[1, 2, 3];
  
  var list2 = <int>[3, 2, 1];
  
  print(deepEq(list1, list2)); 

このように、順番が違っても要素が同じであれば「true」となる比較ができるようになります。

まとめ

順番に関係なく、要素だけ比較するには、「DeepCollectionEqualityクラス」を使います。

具体的には、「DeepCollection.unordered().equals」で作ったインスタンスに、引数として比較するリストを指定します。

参考

Attention Required! | Cloudflare

オススメの記事

[Dart]リストを比較する方法

[Dart][Flutter]リストの要素を削除する方法

[Dart]リストを結合する方法

[Dart]リストをソートする方法

[Dart]List(リスト)に要素を追加する方法

[Dart]リスト(List)にフィルター(filter)処理をする方法

コメント

タイトルとURLをコピーしました