同一列表的多个不同视图[重复]

Posted

技术标签:

【中文标题】同一列表的多个不同视图[重复]【英文标题】:Multiple differing views of the same list [duplicate] 【发布时间】:2015-06-09 02:03:36 【问题描述】:

我正在尝试为一个名为 Ship 的类创建迭代器。这是一个遗传算法示例。

Ship 的两个关键属性是重量和体积(背包问题)。我想要一个按重量排序的迭代器和一个按体积排序的迭代器。

我在为 Ship 类设置实现 Comparable<(?)> 接口时遇到问题。

起初我试图传递一个名为 Value 的类,它有一个表示其类型的枚举和一个浮点值。我有一个看起来像这样的CompareTo 方法:

return int CompareTo(Value arg0)

 switch (arg0.type())

 case WEIGHT:
  return this._weight.compareTo(arg0.value);

...

【问题讨论】:

查看internet上的示例 你给出的例子是使用 Comparable (我在那里举例,但随着问题的出现,我希望有两种方法。如果管理员可以显示我的问题的副本,那就太好了. 但最终我只是被千刀万剐,因为我没有以最正式的方式接近。 【参考方案1】:

最好有两个比较器,一个根据重量进行比较,一个根据体积进行比较,然后使用这些比较器按需排序。

【讨论】:

谢谢你是 100% 正确的。我正在概述我卡住的代码。我使用的是可比较的派生比较器,但我可以使用 Ship 对象和枚举创建一个新的比较器

以上是关于同一列表的多个不同视图[重复]的主要内容,如果未能解决你的问题,请参考以下文章