1

我有两个类,DataClass 和 MY GUI Class。

这是在我的 GUI 类中

 final ArrayList<DataClass> MarksData = new ArrayList<DataClass>();

我一次存储 4 个元素[Mark1,Mark2,Mark3,Mark4]

我怎样才能找到所有的最大标记Mark1

我试过Object obj = Collections.min()但没有用,因为它是arrayListtype DataClass

任何帮助表示赞赏:)

4

2 回答 2

5

最好的方法可能是使用Collections.max(),但要做到这一点,您需要Comparable<DataClass>DataClass类上实现。

此接口允许您定义一个compareTo(DataClass o)方法,您可以在该方法中编写逻辑以确定它是小于还是大于另一个标记,然后Collections.max()会为您找到最大值。

如评论中所述,您还可以编写自定义比较器并使用Collections.max()采用该自定义比较器的变体 - 但您编写的用于比较标记的逻辑是相同的。

请注意,如果您想找到最小标记,请选择Collections.min(). 所有其他细节保持不变。

于 2012-11-19T11:50:30.350 回答
2

要使用 Collections.min(),您必须制作DataClass implements Comparable<DataClass>或提供自定义Comparator<DataClass>

于 2012-11-19T11:51:24.453 回答