我正在使用Java -7。我想要一些帮助因为我卡住了,我有一个列表,我一直在添加值但最后我想得到最新的15.列表处理DonateTable类 包含返回long的.getTime()(System.getCurrentMilliseconds)
我希望使用此值来获取最新的前15名。所以更高的ms =最新值。但是idk怎么样。这是我的代码
public ArrayList<DonateTable> getLog(int objectId)
{
ArrayList<DonateTable> data = new ArrayList<>();
for (DonateTable dt : list)
if (dt.getObjectId() == objectId)
data.add(dt);
return data;
}
public static class DonateTable
{
int _objectId = 0;
String _service = "";
long _time, _points = 0;
public DonateTable(int ObjectId, String service, long time, long points)
{
_objectId = ObjectId;
_service = service;
_time = time;
_points = points;
}
public int getObjectId()
{
return _objectId;
}
public String getService()
{
return _service;
}
public long getTime()
{
return _time;
}
public long getPoints()
{
return _points;
}
}
答案 0 :(得分:0)
您可以将比较器用于data.token
类,并使用DonateTable
值对其实例进行排序。
getTime()
您可以这样使用此比较器:
public class DonateTableByHighestTimeComparator implements Comparator<DonateTable>{
public int compare(DonateTable o1, DonateTable o2){
return - Long.compare(o1.getTime(), o2.getTime());
}
}
最后,您可以获得排序列表的前15个元素的子列表视图:
List<DonateTable> data = new ArrayList<>();
...
Collections.sort(data, new DonateTableByHighestTimeComparator());