package com.lee.compare;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import org.junit.Test;
import com.lee.model.User;
import com.lee.model.User2;
public class CompareList {
@Test
public void t1() throws InterruptedException{
Date d1 = new Date();
User u1 = new User();
u1.setName("n1");
Thread.sleep(2000);
Date d2 = new Date();
User u2 = new User();
u2.setName("n2");
Thread.sleep(2000);
Date d3 = new Date();
User u3 = new User();
u3.setName("n3");
u1.setDate(d3);
u2.setDate(d1);
u3.setDate(d2);
List<User> list = new ArrayList<User>();
list.add(u1);
list.add(u2);
list.add(u3);
System.out.println(list.toString());
Collections.sort(list);
System.out.println(list.toString());
}
@Test
public void t2() throws InterruptedException{
Date d1 = new Date();
User2 u1 = new User2();
u1.setName("n1");
Thread.sleep(1000);
Date d2 = new Date();
User2 u2 = new User2();
u2.setName("n2");
Thread.sleep(1000);
Date d3 = new Date();
User2 u3 = new User2();
u3.setName("n3");
u1.setDate(d3);
u2.setDate(d1);
u3.setDate(d2);
List<User2> list = new ArrayList<User2>();
list.add(u1);
list.add(u2);
list.add(u3);
System.out.println(list.toString());
//[User [name=n1, age=null, date=Fri Jun 07 20:11:30 CST 2013], User [name=n2, age=null, date=Fri Jun 07 20:11:28 CST 2013], User [name=n3, age=null, date=Fri Jun 07 20:11:29 CST 2013]]
//[User [name=n2, age=null, date=Fri Jun 07 20:11:28 CST 2013], User [name=n3, age=null, date=Fri Jun 07 20:11:29 CST 2013], User [name=n1, age=null, date=Fri Jun 07 20:11:30 CST 2013]]
//时间升序
Collections.sort(list, new Comparator<User2>() {
@Override
public int compare(User2 o1, User2 o2) {
if(o1.getDate().after(o2.getDate())){
return 1;
}
return -1;
}
});
System.out.println(list.toString());
}
}
分享到:
相关推荐
这样,`dates`列表就会按照日期的升序排列了。如果你的日期格式不固定,可以在`DateComparator`类中增加对多种格式的支持,或者在比较前先尝试不同的格式进行解析。 总的来说,对于非标准日期格式的`List<String>`...
Set 是一个不能包含重复元素的集合,SortedSet 是一个按照升序排列元素的 Set。List 是一个有序的集合,可以包含重复的元素,并提供了按索引访问的方式。Map 是一个包含了 key-value 对的集合,SortedMap 是一个按照...
// 按照学生的年龄进行升序排列 if(o1.getAge() > o2.getAge()){ return 1; } if(o1.getAge() == o2.getAge()){ return 0; } return -1; } }); System.out.println("排序后:"+list); } } class ...
这里的“集合”特指Java集合框架中的数据结构,而“排序”则是指对这些集合内的元素按照某种规则进行重新排列。 #### 描述:Java中按对象的某个属性进行升序降序的排序 这段描述进一步明确了排序的目标:即基于...
List接口支持排序,可以通过Collections.sort()方法对列表进行升序或降序排序。 2. Set接口:Set接口的实现类主要有HashSet、LinkedHashSet和TreeSet。HashSet是基于哈希表实现的,不保证元素的顺序,但查找速度快...
9. 多列排序:通过实现IComparer接口并应用到List Control中,可以实现多列排序功能,用户点击列标题即可根据该列进行升序或降序排列。 10. 拖放操作:通过实现OLEDragDrop接口,List Control可以支持拖放功能,...
这段代码将按照姓名的自然顺序(即字母顺序)进行排序,然后在姓名相同的情况下,按工资的降序排列。 总结来说,Java中的List可以通过自定义Comparator或者利用泛型和方法引用来实现对象多属性的动态排序。这种技术...
- SortedMap是Map的一个子接口,它要求Map中的键按照升序排列,主要实现类是TreeMap。 7. **常用方法及工具类Collections**: - Collections工具类提供了很多静态方法,如对List进行排序(sort())、查找最大或...
然而,在某些场景下,我们需要按照字典中的值进行排序,尤其是降序排列,以便于进一步的数据处理或展示。本文将深入探讨如何在C#中实现`Dictionary`按值的降序排列,并提供详细的代码示例。 ### 按值的降序排列 ...
最终,List 集合中的元素将按照 seq 字段的升序排列。 2.冒泡排序 冒泡排序是一种简单的排序算法,用于对 List 集合中的元素进行排序。该算法的基本思想是:比较相邻的元素,如果它们的顺序错误,那么交换它们。...
TreeMap,V>是一个基于红黑树的实现,它可以保证映射按照升序顺序排列关键字。TreeMap,V>的构造器可以接受一个比较器,用于定义比较规则。这样,我们可以按照键的自然顺序进行排序,或者按照创建时所提供的比较器进行...
列表的排序操作可以使用 `sort()` 方法,例如 `list.sort()` 可以将列表按照升序排序。列表的倒序操作可以使用 `reverse()` 方法,例如 `list.reverse()` 可以将列表倒序排列。 列表的索引操作可以使用 `index()` ...
例如,TreeMap会按照键的升序排列,可以通过自定义Comparator实现降序或其他定制的排序。 在Map中创建自己的类的定义,通常涉及到实现Comparable接口或提供Comparator。如果你的类需要作为Map的键,那么实现...
同时,它们可能还演示了如何实现排序功能,这通常是通过重载`CReportCtrl`的成员函数或处理`LVN_COLUMNCLICK`消息来完成的,当用户点击列头时,数据按照该列的值进行升序或降序排列。 `coloredlistctrl.zip`和`...
通过比较两个`TimeoffDateDTO`实例的开始时间戳来决定它们的顺序,从而确保了后续处理过程中所有时间段都是按照开始时间升序排列的。 #### 三、日期合并算法详解 日期合并的核心算法实现在`combineDate()`方法中。...
// 按照年龄升序排列 } } public class Test { public static void main(String[] args) { List<Person> list = new ArrayList(); list.add(new Person("柳岩", 38)); list.add(new Person("唐嫣", 18)); ...
本篇文章将详细探讨如何使用 `Collections.sort()` 对Java List集合进行排序。 首先,`Collections.sort(List<T> list)` 是一个通用的方法,它接受一个List类型的参数,并对其进行排序。排序的标准是基于集合中元素...
- **SortedSet**:是Set接口的子接口,提供了按照特定顺序(默认升序)排列元素的能力。TreeSet实现了SortedSet接口。 - **List**:也继承自Collection接口,它是一个有序的集合,允许元素重复,并支持按索引访问...
在Java编程中,`List`接口是集合框架的重要组成部分,提供了丰富的操作方法,其中包括排序功能。`List`对象排序的通用方法对于优化程序性能、处理动态数据尤其关键,特别是当从数据库查询的数据需要根据特定字段进行...
// 按照年龄升序排列 } } Student[] student = ... // 初始化学生数组 ArrayList<Student> studentList = new ArrayList(Arrays.asList(student)); Collections.sort(studentList); ``` 如果需要根据不同的规则...