List<Object> objList = new ArrayList<Object>();
List<MsgBO> list = service
.getMsgBOList();
for (MsgBO smBO : list) {
objList.add(smBO);
}
List<SmsBO> logs = service
.getSmsBOList();
for (SmsBO log : logs) {
objList.add(log);
}
// 排序
Collections.sort(objList, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
Date d1 = null, d2 = null;
if (o1 instanceof MsgBO) {
d1 = ((MsgBO) o1).getCreateTime();
} else if (o1 instanceof SmsBO) {
d1 = ((SmsBO) o1).getCreateTime();
}
if (o2 instanceof MsgBO) {
d2 = ((MsgBO) o2).getCreateTime();
} else if (o2 instanceof SmsBO) {
d2 = ((SmsBO) o2).getCreateTime();
}
return d1.compareTo(d2);
}
});
解析代码
for(Object data : objList ){
if (data instanceof MsgBO )
MsgBO msgBO = (MsgBO ) data;
else
SmsBO smsBO = (SmsBO) data;
}
// 排序
Collections.sort(resultBos, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
Date d1 = null, d2 = null;
d1 = ((MsgBO) o1).getTime();
d2 = ((MsgBO) o2).getTime();
return d1.compareTo(d2);
}
});
分享到:
相关推荐
通过实现`Comparator`接口,可以定义一个比较器,用于比较两个对象并确定它们之间的顺序关系。 ### 2. 代码示例分析 在提供的代码中,我们看到了一个具体的`Comparator`实现——`ComparatorObject`类。这个类被...
这个接口提供了`compare()`方法,根据特定的规则来决定两个对象的相对顺序。当需要根据多个排序条件对集合进行排序时,可以使用多个`Comparator`组合的方式来实现。这篇博客文章"Java中的Comparator 对多个排序条件...
`Comparator`是一个可以比较两个对象的类,它提供了一种方式来定义自定义的比较规则,从而实现灵活的排序逻辑。 `Comparator`接口位于`java.util`包中,它包含了一个方法`compare(T o1, T o2)`,这个方法需要比较两...
`compare`方法用于比较两个对象,规则由你自定义,而`equals`方法则是判断两个Comparator是否相等,通常与`compare`方法的实现有关。 ```java public class MyComparator implements Comparator<MyObject> { @...
然后,我们定义了两个匿名内部类,它们都实现了`Comparator`接口,分别根据`idsn`和`name`来排序`BookType`对象。 1. **创建BookType对象**: - 创建了一个`List`对象,并向其中添加了三个`BookType`实例,每个...
首先,`Comparator`接口位于`java.util`包下,它包含一个方法`compare(T o1, T o2)`,用于比较两个对象。当你创建一个新的`Comparator`实现时,你需要重写这个方法,返回一个整数值,表示两个对象的相对顺序。如果`o...
Comparator接口中最重要的方法是compare方法,该方法用于比较两个对象的大小。compare方法的返回值是一个整数,表明两个对象的大小关系。如果返回值小于0,则第一个对象小于第二个对象;如果返回值等于0,则两个对象...
可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组
这里的`Comparator`是一个接口,我们需要实现其`compare(T o1, T o2)`方法来定义两个对象的比较逻辑。 例如,假设我们有一个`Person`类,包含`String`类型的`name`属性和`int`类型的`age`属性,我们可以这样进行...
Comparator是一个接口,定义了compare()方法,用于比较两个对象并返回一个整数。我们可以通过实现这个接口来定义自定义的比较逻辑。例如,假设我们有一个User类,包含name和age属性,我们可以创建一个Comparator来...
`Comparator<String>`的实现通常会覆盖`compare()`方法,其中两个`String`对象作为参数,返回值决定了它们的相对顺序。 其次,`number`的排序通常涉及到`Integer`, `Double`, `Float`等数值类型。在Java中,这些...
而`Comparator`则是一个可以比较任何两个对象的接口,它包含一个`compare()`方法,可以根据我们自定义的规则来比较对象。 对于对象数组,如果对象类实现了`Comparable`接口,我们可以直接使用`Arrays.sort()`方法...
实现Comparator接口需要覆盖compare()方法,以便比较两个对象的大小。例如,我们可以定义一个PersonComparator类,并实现Comparator接口,并覆盖compare()方法,以便比较Person类的对象的大小。 应用场景:...
Comparator 是 Java 中的一种比较器接口,用于比较两个对象的大小。与 Comparable 接口不同,Comparator 是一个外部比较器,它可以独立于被比较的对象。 在上面的示例代码中,我们定义了一个 CompareTest 类,该类...
这里我们探讨的主题是如何根据对象的属性进行排序,结合提供的`Simple.java`和`User.java`文件,我们可以假设这是一个关于自定义对象排序的例子。下面将详细解释相关知识点。 1. **Comparable接口**: Java中的`...
`Comparator`提供了一个`compare()`方法,用于比较两个对象。 ```java Comparator<MyObject> comparator = new Comparator() { public int compare(MyObject obj1, MyObject obj2) { return obj1.getValue() - ...
`Comparator`接口定义了一个`compare(T o1, T o2)`方法,用来比较两个对象的顺序。你可以创建多个`Comparator`实例,每个实例对应一种不同的排序逻辑。 - 对于`Collections.sort()`方法,你可以传递自定义的`...
如果两个对象在排序中的位置相同,则返回0;如果当前对象位于`o`之后,则返回正数。 ##### 3. 实现案例 下面是一个简单的例子,展示了如何实现`Comparable`接口: ```java public class Customer implements ...
`compare()`方法接受两个`UserInfo`对象作为参数,然后比较它们的`userId`字段,返回值决定了排序顺序。如果`user1`的`userId`小于`user2`的`userId`,`compare()`方法返回负数,表示`user1`应该排在`user2`之前;...
Comparator接口包含两个方法:`compare(T o1, T o2)`用于比较两个对象的大小,以及`equals(Object obj)`,虽然可以不实现,但为了遵循通用的equals合同,建议在自定义Comparator时重写此方法以确保一致性。...