はじめに
Dartのコレクション(List, Set, Map)の比較方法を記載します。
共通
import 'package:collection/collection.dart';
リスト(配列)の比較
順序を考慮する書き方(ListEquality())と考慮しない書き方(DeepCollectionEquality.unordered())がある。
final list1 = [1, 2, 3];
final list2 = [1, 2, 3];
final list3 = [1, 3, 2];
expect(ListEquality().equals(list1, list2), true);
expect(ListEquality().equals(list1, list3), false);
expect(DeepCollectionEquality().equals(list1, list2), true);
expect(DeepCollectionEquality().equals(list1, list3), false);
expect(DeepCollectionEquality.unordered().equals(list1, list2), true);
expect(DeepCollectionEquality.unordered().equals(list1, list3), true);
セット(集合)の比較
final set1 = {1, 2, 3};
final set2 = {2, 3, 1};
final set3 = {1, 2, 3, 4};
expect(SetEquality().equals(set1, set2), true);
expect(SetEquality().equals(set1, set3), false);
Map(辞書)の比較
final map1 = {1: 1, 2: 2};
final map2 = {2: 2, 1: 1};
final map3 = {1: 1, 3: 3};
expect(MapEquality().equals(map1, map2), true);
expect(MapEquality().equals(map1, map3), false);