同一列表的多个不同视图

Multiple differing views of the same list

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

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

我在为 Ship class 设置工具 Comparable<(?)> 界面时遇到问题。

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

return int CompareTo(Value arg0)

 switch (arg0.type())

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

...

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