Java List排序

List排序大体上分为如下两类:

1、List<Integer> 对Integer、String等类型的List排序

2、List<Object> 对自定义对象的排序

本文代码例子只进行简单的介绍,仅起到抛砖引玉作用,读者可以自行开发哈。

1、对List<Integer>进行排序

代码如下:

 1 List<Integer> l = new ArrayList<Integer>();
 2 l.add(3);
 3 l.add(1);
 4 l.add(2);
 5 l.add(9);
 6 l.add(7);
 7
 8 Collections.sort(l);//默认排序(从小到大)
 9 for(int i : l){
10     System.out.println(i);
11 }
12
13 Collections.reverse(l);//倒叙(从大到小)
14 for(int i : l){
15     System.out.println(i);
16 }

代码运行后结果为 12379 97321 先是正序输出(默认从小到大) 后是倒叙输出(从大到小)。

2、对List<Object>进行排序

对自定义的对象进行排序,首先对象需要实现Comparable接口,然后重写compareTo方法。代码如下:

实体对象

 1 /*
 2  * 学生实体
 3  */
 4 class Student implements Comparable<Student>{
 5     public Integer Age = 0;
 6     public String Name = "";
 7
 8     public Integer getAge() {
 9         return Age;
10     }
11     public void setAge(int age) {
12         Age = age;
13     }
14
15     public String getName() {
16         return Name;
17     }
18     public void setName(String name) {
19         Name = name;
20     }
21
22     public Student(int age,String name){
23         this.Age = age;
24         this.Name = name;
25     }
26
27     @Override
28     public int compareTo(Student s) {
29         //自定义比较方法,如果认为此实体本身大则返回1,否则返回-1
30         if(this.Age >= s.getAge()){
31             return 1;
32         }
33         return -1;
34     }
35 }

排序代码实例:可以用list.sort()排序,也可以用Collections.sort()排序,结果都是一样的

 1 List<Student> list = new ArrayList<Student>();
 2
 3 list.add(new Student(1,"zhangsan"));
 4 list.add(new Student(6,"zhangsan"));
 5 list.add(new Student(2,"zhangsan"));
 6 list.add(new Student(9,"zhangsan"));
 7 list.add(new Student(1,"zhangsan"));
 8
 9 list.sort(Comparator.naturalOrder());//正序比较
10 //Collections.sort(list);//正序比较
11
12 for(Student i : list){
13     System.out.println(i.getAge());
14 }

代码只写了正序排序,结果如下:11269。

总体上排序简单的实现就是这样子,有很多不足,希望各位大大指正。^_^!!

时间: 2024-10-20 08:33:24

Java List排序的相关文章

java Map排序(升序、降序、随机排序)

基础知识: 1 HashMap会使用key,根据hashcode进行默认排序. 2  LinkedHashMap根据存入先后进行排序 代码展示: 1 随机排序 java Map排序(升序.降序.随机排序),布布扣,bubuko.com

Java-集合--Java集合排序

Java集合排序 前几天在工作的当中遇到对List<Map<String,String>>这样的数据结构按照Map<String,String>中的某个字段排序, 具体的实现为: <span style="font-size:18px;">public void sortList(List<Map<String, String>> list, final String field) { Collections.so

Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序. 先来看看 8种排序之间的关系: 1.直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]

java编程排序之自定义类型的集合,按业务需求排序

自定义引用类型放入集合中,按实际业务需求进行排序的两种思路 第一种思路: (1)自定义实体类实现java.lang.Comparable接口,重写public int compareTo(Object obj)方法.自定义业务比较规则 (2)利用java.util.Collections类的静态方法sort(List<自定义类型> list)进行排序(默认升序)或者.自己编写排序工具类.冒泡+compareTo(obj)方法 第二种思路 (1)自己编写业务比较规则类.实体类不用实现任何借口.业

java希尔排序算法

原文:java希尔排序算法 代码下载地址:http://www.zuidaima.com/share/1550463279090688.htm 希尔排序算法的基本思想是:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组.所有距离为dl的倍数的记录放在同一个组中.先在各组内进行直接插人排序:然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<-<d2<d1),即所有记录放在同一组中进行直接插入排序为止.该方法实质上是一种

Java对象排序小测试

import java.util.ArrayList; import java.util.Collections; import java.util.List; /**  * Java对象排序  */ public class User implements Comparable<User> {     private int idx;     public User(int idx) {         this.idx = idx;     }     public int getIdx(

Java集合排序

java集合排序 如何给Java中List集合排序呢?前端时间在工作中遇到类似于给这样的结构排序List<Map<String,String>>>按照其中Map中的某个key值排序呢? 集合产生如下: <span style="font-size:18px;">public void sortList(){ List<List<Map<String,String>>> list = new ArrayList

java选择排序

/** * Created by rabbit on 2014-5-9. */ class ArrayTest2 {     public static void SelectSort(int [] arr) //定义选择排序的方法     {         for (int x=0;x<arr.length;x++)         {             for (int y=0;y<arr.length-1;y++)             {                 if

使用JAVA进行排序

利用JAVA完成排序 当我们在进行数据库进行查询的时候,当需要按某个字段来进行排序的时候,可以使用SQL语句来完成排序,可以升序,也可以降序.JAVA中的Collections类也可以完成这种操作,SQL的用法和这种集合工具类的操作,可以用于不同的情况中,至于怎么用,可以根据业务场景来选择,下面我罗列出具体的代码,大家可以参考. 1)创建工程名为sort的JAVA工程 创建包结构: 创建User类: 1 package com.sunyard.bean; 2 3 /** 4 * <p> 5 *

java桶式排序算法代码下载

原文:java桶式排序算法代码下载 代码下载地址:http://www.zuidaima.com/share/1550463272176640.htm 桶式排序: * 桶式排序不再是基于比较的了,它和基数排序同属于分配类的排序, * 这类排序的特点是事先要知道待排 序列的一些特征. * 桶式排序事先要知道待排 序列在一个范围内,而且这个范围应该不是很大的. * 比如知道待排序列在[0,M)内,那么可以分配M个桶,第I个桶记录I的出现情况, * 最后根据每个桶收到的位置信息把数据输出成有序的形式.