areListsEqual static method

bool areListsEqual(
  1. List list1,
  2. List list2
)

Compare two lists for equality.

Implementation

static bool areListsEqual(List<dynamic> list1, List<dynamic> list2) {
  // Check reference equality (optimization)
  if (identical(list1, list2)) {
    return true;
  }

  // Check nulls and length
  if (list1.length != list2.length) {
    return false;
  }

  // Compare each element
  for (int i = 0; i < list1.length; i++) {
    final item1 = list1[i];
    final item2 = list2[i];

    // Handle different types
    if (item1 is List && item2 is List) {
      if (!areListsEqual(item1, item2)) return false;
    } else if (item1 is Map && item2 is Map) {
      if (!areMapsEqual(item1, item2)) return false;
    } else if (item1 != item2) {
      // Direct comparison for primitives (int, String, bool, etc.)
      return false;
    }
  }
  return true;
}