JAVA 实现在内存中对列表进行排序
2012-09-04 20:11
573 查看
第一种方法,就是list中对象实现Comparable接口,代码如下:
01 public class Person implements Comparable<Person> {
02 private String name;
03 private Integer order;
04
05 /**
06 * @return the name
07 */
08 public String getName() {
09 return name;
10 }
11
12 /**
13 * @param name
14 * the name to set
15 */
16 public void setName(String name) {
17 this.name = name;
18 }
19
20 /**
21 * @return the order
22 */
23 public Integer getOrder() {
24 return order;
25 }
26
27 /**
28 * @param order
29 * the order to set
30 */
31 public void setOrder(Integer order) {
32 this.order = order;
33 }
34
35 @Override
36 public int compareTo(Person arg0) {
37 return this.getOrder().compareTo(arg0.getOrder());
38 }
39
40 }
01 public static void main(String[] args) {
02 List<Person> listA = new ArrayList<Person>();
03 Person p1 = new Person();
04 Person p2 = new Person();
05 Person p3 = new Person();
06
07 p1.setName("name1");
08 p1.setOrder(1);
09 p2.setName("name2");
10 p2.setOrder(2);
11 p3.setName("name3");
12 p3.setOrder(3);
13
14 listA.add(p2);
15 listA.add(p1);
16 listA.add(p3);
17 Collections.sort(listA);
18 for (Person p : listA) {
19 System.out.println(p.getName());
20 }
21 }
第二种方法,就是在重载Collections.sort方法,代码如下:
01 public class Person {
02 private String name;
03 private Integer order;
04
05 /**
06 * @return the name
07 */
08 public String getName() {
09 return name;
10 }
11
12 /**
13 * @param name
14 * the name to set
15 */
16 public void setName(String name) {
17 this.name = name;
18 }
19
20 /**
21 * @return the order
22 */
23 public Integer getOrder() {
24 return order;
25 }
26
27 /**
28 * @param order
29 * the order to set
30 */
31 public void setOrder(Integer order) {
32 this.order = order;
33 }
34
35 }
01 public static void main(String[] args) {
02 List<Person> listA = new ArrayList<Person>();
03 Person p1 = new Person();
04 Person p2 = new Person();
05 Person p3 = new Person();
06
07 p1.setName("name1");
08 p1.setOrder(1);
09 p2.setName("name2");
10 p2.setOrder(2);
11 p3.setName("name3");
12 p3.setOrder(3);
13
14 listA.add(p2);
15 listA.add(p1);
16 listA.add(p3);
17
18 Collections.sort(listA, new Comparator<Person>() {
19 public int compare(Person arg0, Person arg1) {
20 return arg0.getOrder().compareTo(arg1.getOrder());
21 }
22 });
23
24 for (Person p : listA) {
25 System.out.println(p.getName());
26 }
27 }
两次执行的结果都是:
name1
name2
name3
01 public class Person implements Comparable<Person> {
02 private String name;
03 private Integer order;
04
05 /**
06 * @return the name
07 */
08 public String getName() {
09 return name;
10 }
11
12 /**
13 * @param name
14 * the name to set
15 */
16 public void setName(String name) {
17 this.name = name;
18 }
19
20 /**
21 * @return the order
22 */
23 public Integer getOrder() {
24 return order;
25 }
26
27 /**
28 * @param order
29 * the order to set
30 */
31 public void setOrder(Integer order) {
32 this.order = order;
33 }
34
35 @Override
36 public int compareTo(Person arg0) {
37 return this.getOrder().compareTo(arg0.getOrder());
38 }
39
40 }
01 public static void main(String[] args) {
02 List<Person> listA = new ArrayList<Person>();
03 Person p1 = new Person();
04 Person p2 = new Person();
05 Person p3 = new Person();
06
07 p1.setName("name1");
08 p1.setOrder(1);
09 p2.setName("name2");
10 p2.setOrder(2);
11 p3.setName("name3");
12 p3.setOrder(3);
13
14 listA.add(p2);
15 listA.add(p1);
16 listA.add(p3);
17 Collections.sort(listA);
18 for (Person p : listA) {
19 System.out.println(p.getName());
20 }
21 }
第二种方法,就是在重载Collections.sort方法,代码如下:
01 public class Person {
02 private String name;
03 private Integer order;
04
05 /**
06 * @return the name
07 */
08 public String getName() {
09 return name;
10 }
11
12 /**
13 * @param name
14 * the name to set
15 */
16 public void setName(String name) {
17 this.name = name;
18 }
19
20 /**
21 * @return the order
22 */
23 public Integer getOrder() {
24 return order;
25 }
26
27 /**
28 * @param order
29 * the order to set
30 */
31 public void setOrder(Integer order) {
32 this.order = order;
33 }
34
35 }
01 public static void main(String[] args) {
02 List<Person> listA = new ArrayList<Person>();
03 Person p1 = new Person();
04 Person p2 = new Person();
05 Person p3 = new Person();
06
07 p1.setName("name1");
08 p1.setOrder(1);
09 p2.setName("name2");
10 p2.setOrder(2);
11 p3.setName("name3");
12 p3.setOrder(3);
13
14 listA.add(p2);
15 listA.add(p1);
16 listA.add(p3);
17
18 Collections.sort(listA, new Comparator<Person>() {
19 public int compare(Person arg0, Person arg1) {
20 return arg0.getOrder().compareTo(arg1.getOrder());
21 }
22 });
23
24 for (Person p : listA) {
25 System.out.println(p.getName());
26 }
27 }
两次执行的结果都是:
name1
name2
name3
相关文章推荐
- C#:ListView控件如何实现点击列表头进行排序
- Java中Map根据键值(key)或者值(value)进行排序实现
- 对数组进行排序,并记录下标值的Java实现
- 【JAVA】实现注解拼接SQL+字段进行排序
- java对实体类列表进行方法内排序,不修改数据查询方式
- C#:ListView控件如何实现点击列表头进行排序
- JAVA_WEB项目之Lucene实现检索结果排序和关键字在索引库中多字段查询结果进行高亮显示
- Java中Map根据键值(key)或者值(value)进行排序实现
- java实现的用插入法进行排序
- listview控件实现点击列表头进行listview排序示例分享
- 关于java中实现在oracle数据库中实现对中文首字母进行排序的解决方案
- 关于java中实现在oracle数据库中实现对中文首字母进行排序的解决方案
- [Java]实现冒泡算法,对数组元素进行排序
- JavaScript实现对下拉列表值进行排序的方法
- 最简单的对Java List列表按中文拼音排序的实现方式
- JAVA 利用Arraylist.sort()进行排序的实现。(comparable接口的实现)
- java实现对一个字符串中的数值进行从小到大的排序
- 最简单的对Java List列表按中文拼音排序的实现方式
- java 移动节点,排序号进行重新排序,以闭包形式实现ztree增删改查操作,其中排序运用到此方法
- Java 中 Map 根据键值 (key) 或者值 (value) 进行排序实现