我有一堂课,有两个日期字段说:
class TestData {
Date activation;
Date timeStamp;
}
我想根据activation
日期对上述类别的列表进行排序,如果它们相等,则根据timestamp
max(activation)和max(timeStamp)进行排序。
我尝试的代码如下所示,仅获取max(激活)
public class CollectionSort {
public static void main(String[] args) {
List<TestData> testList = new ArrayList<TestData>();
Collections.sort(testList, new Comparator<TestData>() {
@Override
public int compare(TestData t1, TestData t2) {
int result = 0;
if (t1.getActivation().before(t2.getActivation())) {
result = 1;
}
return result;
}
});
System.out.println("First object is " + testList.get(0));
}
}
任何帮助将不胜感激。
谢谢
这样就可以了!
Collections.sort(yourList, new Comparator<TestData>() {
public int compare(TestData o1, TestData o2) {
int date1Diff = o1.getActivation().compareTo(o2.getActivation());
return date1Diff == 0 ?
o1.geTimestamp().compareTo(o2.getTimestamp()) :
date1Diff;
}
});
问题内容: 假设我有两个类CLassA和CLassB。它们有一个共同的属性,例如每个类拥有的元素数量。 我如何从ClassA和CLassB的对象创建一个集合,并按该属性排序(降序升序无所谓)? 我收集了一个类型,但是当我尝试实现Comparable Interface时,我无法使用该方法(例如,获取返回元素nr的get)。 我有什么解决方案? 谢谢你的帮助! 问题答案: 实际上,如果要将它们放在同
我试图使用流重构一些不那么优雅的代码。我有一个包含字符串和MyObject的HashMap,目前正在使用for循环对其进行迭代,如下所示: 因为我只关心id,所以我首先使用map操作只获取id,然后使用filter操作来消除空的id。 下一部分是我遇到的问题。我尝试的第一件事是使用Collectors groupingBy操作,这样我可以根据id的第一个字符对项目进行分组,结果是: 此链接有助于使
我有以下收藏: 其中看起来像这样: 现在我必须根据字段对集合进行排序,如何实现这一点?
问题内容: 更新进度条时对集合排序的最佳方法是什么?目前,我有这样的代码: 这显示进度,但是进度条随着项目数量的增加而减慢。有谁有更好的方法?理想情况下,我想使用类似于的接口,以便尝试不同的排序算法。 任何帮助将是巨大的! 作为背景,这段代码正在从Lucene撤回许多文档(1到1000万个),并在它们之上运行自定义比较器。通过将数据写回到磁盘上对它们进行排序将太慢而无法实用。大部分成本是从磁盘上读
我有一只这样的熊猫 我如何根据集合(例如)中的值对其进行排序 设置顺序=('1','3','2','4') 产量 谢谢
问题内容: 我有一张有5列的桌子。当我列出表时,我想按一列排序,以便将类型分组在一起,然后按字母顺序对它们进行排序,以便于查找。 是否可以通过两个不同的列? 这是我当前的选择: 我想我正在寻找的是这样的: 问题答案: 您可以通过列名或返回的列号指定ORDER BY。 因此,您可以执行以下操作: 或类似的东西: 您还可以进行升序和降序。因此,如果您想使用“类型降序”但“标题升序”: