本教程展示了如何在Dart和Flutter编程中比较两个集合的多个例子。
如果符合以下条件,两个集合是相等的
- 两个集合的长度相等
- 元素的顺序并不重要
- 如果元素是一个对象,两个集合中的对象的键和值应该匹配。
检查两个集合是否相等
在dart中,quiver包是一个可重复使用的函数集合库。
setsEqual 在集合函数中,比较两个集合,如果相等则返回true ,否则不相等。
语法:
bool setsEqual(Set? a, Set? b)
它需要两个集合进行比较 返回值:true 或false 。
下面是一个示例代码
import 'package:quiver/collection.dart';
void main() {
var set1 = {3, 7, 2};
var set2 = {3, 7, 2};
print(setsEqual(set1, set2)); // true
var set3 = {13, 71, 21};
var set4 = {31, 71, 2};
print(setsEqual(set3, set4)); // false
}
输出
true
false
如何在Flutter中比较两组数字的相等或不相等
如果你的应用程序是flutter,它有一个foundation.dart 库。
foundation.dart 有一个 方法,对集合中的每个元素进行比较,并返回布尔类型的相等比较结果。setEquals
bool setEquals(Set? a, Set? b)
- true。如果两个Set是相等的,返回
true,忽略元素的顺序。 - false:如果两个Set是相等的,则返回false。元素在集合中。这里,比较两个数字集合,如果两个集合的值相等,则返回
true。
下面是一个数字集相等的例子。
import 'package:flutter/foundation.dart';
void main() {
var set1 = {3, 7, 2};
var set2 = {3, 7, 2};
print(setEquals(set1, set2)); // true
var set3 = {13, 71, 21};
var set4 = {31, 71, 2};
print(setEquals(set3, set4)); // false
}
如何在flutter中比较两个字符串集?
在下面的例子中,set1和set2是相等的。因此,它返回真。
每个集合中的值都与另一个集合的值进行比较,以确定是否相等。
import 'package:flutter/foundation.dart';
void main() {
var set1 = {"one", "two", "three"}
var set2 = {"one", "two", "three"};
print(setEqual(set1, set2)); // true
}
在下面的例子中,set1和set2是不同的,因为其中一个值("二"!="二")不相等。因此,它返回错误。所以,它比较的是一个字符串的精确大小写匹配。
import 'package:flutter/foundation.dart';
void main() {
var set1 = {"one", "Two", "three"}
var set2 = {"one", "two", "three"};
print(setEqual(set1, set2)); // fase
}
如何在Flutter中比较两组对象是否相等?
这表明你要比较两组对象,如果两组对象相等则返回,否则返回错误。
以下是所需的步骤。
- 创建了具有id、name、salary和joinDate的雇员。
- 在下面的例子中创建了四个集合
- 使用以下方法比较两个集合
import 'package:flutter/foundation.dart';
import 'dart:convert';
class Employee {
final int id;
final String name;
final int salary;
final DateTime joinDate;
Employee(this.id, this.name, this.salary, this.joinDate);
Map toJson() =>
{"id": id, "name": name, "salary": salary, "doj": joinDate.toString()};
}
void main() {
final e1 =
Employee(11, 'Erwin', 9000, DateTime.parse("2020-06-21 00:00:00.000"));
final e2 =
Employee(21, 'Andrew', 70000, DateTime.parse("2021-07-23 00:00:00.000"));
final e3 =
Employee(4, 'Mark', 8000, DateTime.parse("2017-08-24 00:00:00.000"));
final e4 =
Employee(12, 'Otroc', 5000, DateTime.parse("2022-12-05 00:00:00.000"));
final Set employees = {e1, e2, e3, e4};
final Set employees1 = {e1, e2, e3, e4};
print(setEquals(employees, employees1)); // true
final Set employees2 = {e1, e3, e4};
final Set employees3 = {e1, e2, e4};
print(setEquals(employees2, employees3)); // false
}
总结
在本教程中,学习了如何在Dart和flutter编程中比较两个数字、字符串和对象的平等性。