我有一个从数据库检索的对象列表。 该对象如下所示:

class MonthlyFinancePlan {

  final int id;
  final DateTime date;
  final double incomeAfterTax;
  final double totalToPayOut;
  final double totalRemainingForMonth;
  final Map<String, dynamic> items;

  MonthlyFinancePlan({ this.id, this.date, this.incomeAfterTax, this.totalToPayOut, this.totalRemainingForMonth, this.items });

  MonthlyFinancePlan.fromEntity(MonthlyFinancePlanEntity monthlyFinancePlanEntity):
    this.id = monthlyFinancePlanEntity.id,
    this.date = DateTime.parse(monthlyFinancePlanEntity.date),
    this.incomeAfterTax = monthlyFinancePlanEntity.incomeAfterTax.toDouble(),
    this.totalToPayOut = monthlyFinancePlanEntity.totalToPayOut.toDouble(),
    this.totalRemainingForMonth = monthlyFinancePlanEntity.moneyRemainingForMonth.toDouble(),
    this.items = monthlyFinancePlanEntity.items != null ? json.decode(monthlyFinancePlanEntity.items) : Map();
}

我需要按date.year对它们进行排序,然后将它们传递到头等舱列表中,我想创建这些头等舱列表的列表,以便对2020年以来的所有MonthlyFinancePlan对象进行排序并包含在头等舱清单,与2021年相同,依此类推。

头等舱清单如下所示:

class YearlyFinancePlan {

  List<MonthlyFinancePlan> _monthlyFinancePlanList;

  int _year;
  double _totalIncomeForYear;
  double _totalOutGoingsForYear;

  List<MonthlyFinancePlan> get items {
    return this._monthlyFinancePlanList;
  }

  int get year {
    return this._year;
  }

  double get totalIncomeForYear {
    return this._totalIncomeForYear;
  }

  double get totalOutgoingsForYear {
    return this._totalOutGoingsForYear;
  }

  YearlyFinancePlan(this._monthlyFinancePlanList) {
    this._year = this._monthlyFinancePlanList.first.date.year;
    this._totalIncomeForYear = this._setTotalIncomeFromList(this._monthlyFinancePlanList);
    this._totalOutGoingsForYear = this._setTotalOutGoingsForYear(this._monthlyFinancePlanList);
  }

  double _setTotalIncomeFromList(List<MonthlyFinancePlan> monthlyFinancePlanList) {
    double totalIncome;

    monthlyFinancePlanList.forEach((plan) => totalIncome += plan.incomeAfterTax);
    return totalIncome;
  }

  double _setTotalOutGoingsForYear(List<MonthlyFinancePlan> monthlyFinancePlanList) {
    double totalOutgoings;

    monthlyFinancePlanList.forEach((plan) => totalOutgoings += plan.totalToPayOut);
    return totalOutgoings;
  }
}

我的问题是,哪种排序算法最适合我的需求? 我没有要显示的代码,因为我不知道要使用哪种排序算法。 我不是在寻找任何人来编写我的代码,而是希望通过它来指导我。

任何帮助将不胜感激

  ask by Marc Freeman translate from so

本文未有回复,本站智能推荐:

1回复

根据其他列表的排序方式在Dart中对列表进行排序

我正在尝试参考另一个列表对列表进行排序。 考虑这个例子, 现在,我希望结果是这样的, 我怎样才能达到这个结果?
1回复

根据构造函数参数对飞镖列表进行排序

我已经定义了这样的课程, 我有一个喜欢的人的清单, 现在,我需要根据其构造函数参数(例如id或age)对该列表进行排序。 我怎样才能做到这一点?
1回复

如何在列表中联接具有相同值的字符串列表

我有一个字符串列表的列表,我需要将相同的值连接到一个列表中,并添加每个列表的不同值。 例如: 加入的列表如下所示: 结果应该是: 这是来自json的数据,也许我不应该使用字符串列表。 任何建议都将受到欢迎。
1回复

在Dart中对列表进行排序与​​在Swift中对列表进行排序

我已经在iOS的Swift中成功实现了排序算法。 (请参见下面的代码)。 现在,我想在Dart for Flutter中实现相同的算法。 我必须意识到我的试用版(见下文)与Swift代码的功能不同。 为什么???? 有人可以解释Swift的sorted函数和Dart的sor
1回复

Dart Firebase,无法使用orderByValue对列表进行排序

我有一个Flutter应用,可显示Firebase实时数据库中的日期列表。 我正在尝试“翻转”它们显示的顺序。 这是我目前正在Dart尝试做的事情: 我还尝试过将Firebase规则更改为如下排序方法: 这些方法都不会对列表的顺序产生任何影响。 任何帮助总是很感激。
1回复

在Flutter / Dart中映射多个列表?

我有SWIFT代码,在其中我映射了一组具有相等数量元素的列表,其中1是一个整数列表,并且它们以降序映射。 这是我的SWIFT代码... 这是我在Flutter的所在地,但前进时遇到了错误... 如何从类构造函数中创建list ,然后按降序重新排列所有元素以映射到等级? *
2回复

如何使用dart null-safety对可能包含null值的列表进行排序

我有一个可能包含空值的字符串列表,如何对该列表排序? 我正在使用Flutter Beta通道,因此检查了null安全性。 这是我到目前为止所拥有的: 如何获得此结果:
1回复

如何在Dart编程中合并列表中的类似项目? [重复]

这个问题已经在这里有了答案: 如何删除飞镖列表中的重复项? list.distinct()? 8个答案 如何以DART编程语言合并列表中的类似项目? 我有这样的清单: 我想要这样的清单: 如何做到这一点?
1回复

如何在颤动中按字母顺序对外部存储中的歌曲列表进行排序

正如我的问题所说..我想对listView项进行排序,这些项基本上是外部存储读取的歌曲..我想按字母顺序对它们进行排序..这是我的listView代码
2回复

如何根据函数返回的值在dart中对List进行排序

我必须按最近的位置按排序顺序显示商店列表,并且我有一个未分类的商店列表和一个函数来计算每个商店到当前位置的距离,但是我不知道如何根据函数返回的值。 我从api获取未排序的商店数据列表。 我需要这个逻辑来对_kikkleStores列表进行排序