【问题标题】:Collections.sort: cannot convert from void to List [duplicate]Collections.sort:无法从 void 转换为 List [重复]
【发布时间】:2019-08-10 21:47:15
【问题描述】:

我有这个实体列表:

@Entity
@Table(name = "filters")
public class Filters {

    private String filter_settings;

    private Integer position;
}

列表:

List<RiskFilters> filter_list

我有简单的“位置”数字 - 1、2、3 等。

如何根据“位置”编号对“过滤器”列表进行排序?

我试过了:

    List<RiskFilters> sorted_filter_list = Collections.sort(filter_list, Comparator.comparingInt(RiskFilters::getPosition));

但我得到 Type mismatch: cannot convert from void to List

有没有办法解决这个问题?

【问题讨论】:

  • 你实例化了filter_list吗?
  • Collections.sort() 不返回值。它实际上对传递给它的 List 进行了变异(排序)。只需运行该方法即可对其进行排序。
  • 你能提出一些解决方案吗?
  • @PeterPenzov 只需编写 `Collections.sort(filter_list, Comparator.comparingInt(RiskFilters::getPosition));` 对列表进行排序。只要它已经被实例化,List 现在就会被排序。
  • @KellyM 好的,但我需要从旧列表中创建一个新的排序列表。

标签: java


【解决方案1】:

那是因为Collections.sort(list) 对您发送给他们的列表进行了排序。您无需像使用 String 一样将其重新分配到您的列表中。

List<RiskFilters> filter_list
Collections.sort(filter_list, Comparator.comparingInt(RiskFilters::getPosition));

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多