我有两个类,DataClass和MY GUI Class。
这是我的GUI类
final ArrayList<DataClass> MarksData = new ArrayList<DataClass>();
我一次存储4个元素[Mark1,Mark2,Mark3,Mark4]
如何找到Mark1
我尝试了Object obj = Collections.min()
,但由于arrayList
类型为DataClass
,因此无效。
感谢任何帮助:)
答案 0 :(得分:5)
执行此操作的最佳方法可能是使用Collections.max()
,但要执行此操作,您需要在DataClass
类上实施Comparable<DataClass>
。
此界面允许您定义compareTo(DataClass o)
方法,您可以在该方法中编写该方法中的逻辑以确定它是否小于或大于其他标记,然后Collections.max()
将负责查找最大值对你而言。
如评论中所述,您还可以编写自定义比较器并使用Collections.max()
的变体来获取该自定义比较器 - 但您编写的用于比较标记的逻辑是相同的。
请注意,如果您想要找到最小标记,请转到Collections.min()
。所有其他细节保持不变。
答案 1 :(得分:2)
要使用Collections.min(),您必须提出DataClass implements Comparable<DataClass>
,或者必须提供自定义Comparator<DataClass>