1

DataClassとMYGUIClassの2つのクラスがあります。

これは私のGUIクラスにあります

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

一度に4つの要素を保存します[Mark1,Mark2,Mark3,Mark4]

のすべての最大マークを見つけるにはどうすればよいですかMark1

試しましたが、タイプObject obj = Collections.min()なので動作しません。arrayListDataClass

どんな助けでも大歓迎です:)

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 に答える