List集合按某个字段排序

package wjtest_01;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class ListSort<E> {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {

		List<Student> list = new ArrayList<Student>();

		// 创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
		Student s1 = new Student();
		s1.setAge(20);
		s1.setUsable(true);
		Student s2 = new Student();
		s2.setAge(19);
		s2.setUsable(true);
		Student s3 = new Student();
		s3.setAge(21);
		s3.setUsable(false);
		list.add(s1);
		list.add(s2);
		list.add(s3);

		System.out.println("排序前:" + list);
		Collections.sort(list, new Comparator<Student>() {

			@Override
			public int compare(Student o1, Student o2) {
				// 按照学生的年龄进行升序排列
				if (o1.getAge() > o2.getAge()) {
					return 1;
				}
				if (o1.getAge() == o2.getAge()) {
					return 0;
				}
				return -1;
			}
		});

		System.out.println("升序排序后:" + list);

		Collections.sort(list, new Comparator<Student>() {

			public int compare(Student o1, Student o2) {

				// 按照学生的年龄进行降序排列
				if (o1.getAge() > o2.getAge()) {
					return -1;
				}
				if (o1.getAge() == o2.getAge()) {
					return 0;
				}
				return 1;
			}
		});

		System.out.println("降序排序后:" + list);

		Boolean b1 = true; // 创建Boolean对象1

		Boolean b2 = false; // 创建Boolean对象0

		Boolean b3 = true; // 创建Boolean对象1
		System.out.println(b1);

		int i;

		i = b1.compareTo(b2); // b1和b2进行比较  

		System.out.println(i);//1-0 

		i = b2.compareTo(b1); // b2和b1进行比较

		System.out.println(i);//0-1

		i = b1.compareTo(b3); // b1和b3进行比较

		System.out.println(i);//1-1
	}
}

class Student{  

    private int age;

    private Boolean isUsable;

	public int getAge() {
        return age;
    }  

    public Boolean isUsable() {
		return isUsable;
	}

	public void setUsable(Boolean isUsable) {
		this.isUsable = isUsable;
	}

	public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return getAge()+"";
    }
}

时间: 2024-10-30 00:16:16

List集合按某个字段排序的相关文章

List集合基于某个字段排序

using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Product { public string Name { get; private set; } public decimal Price { get; private set; } public Product(string name, decimal price) { Name = name; Price = pric

php 数组排序以及按照某个字段排序

经常,开发人员发现在PHP中使用这种数据结构对值或者数组元素进行排序非常有用.PHP提供了一些适合多种数组的排序函数,这些函数允许你在数组内部对元素进行排列,也允许用很多不同的方法对它们进行重新排序.在这篇文章中我们将讨论该排序中最重要的几个函数. 简单排序 首先,让我们来看看最简单的情况:将一个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列.PHP的sort()函数实现了这个功能,如Listing A所示: Listing A <?php  $data = a

sql 可按任意字段排序的分页存储过程

最近做一个项目,其中有许多部分需要用到分页功能 并且这些需要分页的地方有一个共同的特点,那就是,分页,但并不是按ID(主键)来排序,而是要求按其他有重复值的列进行排序,比如,其中有一个页面,要列出将近1万条客户记录,要求按客户付费金额进行排序,这种情况,如果使用网上流行的通用分页存储过程是行不能的,比如,像下面的分页存储过程虽然很棒,可是,用在这里的话,就无计可施:(这个存储过程是我在CSDN上看到一位前辈高人写的) CREATE PROCEDURE GetRecordFromPage @tbl

PHP 二维数组根据某个字段排序

原文:PHP 二维数组根据某个字段排序 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 遇到这个要求的时候就不是 ORDER BY 能解决的问题了.因此翻看 PHP 手册查找到了如下方法,做此笔记. <?php /** * 二维数组根据某个字段排序 * 功能:按照用户的年龄倒序排序 * @author ruxing.li */ header('Content-Type:text/html;Charset=utf-8'

字符串排序和多字段排序(string sorting and multi-fields)

被分词的string字段也是一个multi-value字段,但是对他们进行排序往往得不到想要的结果.如果你对"fine old art"进行分词,他将会返回三个term.我们也许对以一个term进行字母排序,然后第二个等.但是ES没有在这个期间的时间顺序. 你可以使用min和max排序模式(默认使用min),但是结果既不是art或者old也不是任何想要的结果. 为了对string field进行排序,这个field就只能是一个term:也就是一个not_analyzed类型的strin

SQL 单表分页存储过程和单表多字段排序和任意字段分页存储过程

  第一种:单表多字段排序分页存储过程       --支持单表多字段查询,多字段排序 create PROCEDURE [dbo].[UP_GetByPageFiledOrder] ( @TableName varchar(50), --表名 @ReFieldsStr varchar(200) = '*', --字段名(全部字段为*) @OrderString varchar(200), --排序字段(必须!支持多字段不用加order by) @WhereString varchar(500)

【HOW】如何对Reporting Services表格中数据按字段排序

Reporting Services中可以设置排序的地方非常多,有很多地方从其字面意思上好像是对表格数据的排序,但实际都不管用.在多次尝试后,得到如下的有效设置方式: 1. 鼠标右键单击要排序字段的内容单元格(不是标题单元格). 2. 在弹出菜单中选择:行组 > 组属性. 3. 在弹出窗口中选择"排序"选项卡,并在右侧界面中添加排序依据. 有时,在完成如上设置后仍未看到正确排序,这可能是因为对应数据集的排序规则(类似字符集)不正确,设置方法如下: 1. 在表格对应的数据集名称上右

vim 按照字段排序文件

假设有如下数据,以空格为数据列分割: 1  何维川   124.63     172  0.72 2  张子寅   99.67      172  0.58 3  周广滨   93.34      188  0.50 4  陈兴     41.86      188  0.22 5  薛永成   26.68      188  0.14 6  张永福   18.25      188  0.10 7  李华田   18.25      188  0.10 8  葛祥营   11.89      

sql server 2000 单主键高效分页存储过程 (支持多字段排序)

sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage             /*              nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7  QQ:34813284              敬告:适用于单一主键或存在唯一值列的表或视图              ps:Sql语句为8000字节,调用时请注意传入参数及sql总长度不要超过指定范围