JAVA中List 排序

第一种方法,就是list中对象实现Comparable接口,代码如下:

public class SortEntity implements Comparable<SortEntity>{
	private String name;
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public int compareTo(SortEntity o) {
		return this.getName().compareTo(o.getName());
	}
}

  

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

import org.junit.Test;

public class JUnitTest {
	@Test
	public void testSort(){
		List<SortEntity> selist=new ArrayList<>();
		SortEntity se=new SortEntity();
		se.setName("abc");
		se.setAge(50);
		selist.add(se);
		SortEntity se1=new SortEntity();
		se1.setName("abd");
		se1.setAge(13);
		selist.add(se1);
		SortEntity se2=new SortEntity();
		se2.setName("aaa");
		se2.setAge(324);
		selist.add(se2);
		SortEntity se3=new SortEntity();
		se3.setName("abe");
		se3.setAge(5);
		selist.add(se3);
		Collections.sort(selist);
		for (SortEntity s:selist) {
			System.out.println(s.getName());
		}
	}
}

第二种方法,就是在重载Collections.sort方法,代码如下:

public class SortEntity{
	private String name;
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
}

  

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

import org.junit.Test;

public class JUnitTest {
	@Test
	public void testSort(){
		List<SortEntity> selist=new ArrayList<>();
		SortEntity se=new SortEntity();
		se.setName("abc");
		se.setAge(50);
		selist.add(se);
		SortEntity se1=new SortEntity();
		se1.setName("abd");
		se1.setAge(13);
		selist.add(se1);
		SortEntity se2=new SortEntity();
		se2.setName("aaa");
		se2.setAge(324);
		selist.add(se2);
		SortEntity se3=new SortEntity();
		se3.setName("abe");
		se3.setAge(5);
		selist.add(se3);
		Collections.sort(selist,new Comparator<SortEntity>() {

			@Override
			public int compare(SortEntity o1, SortEntity o2) {
				return o1.getName().compareTo(o2.getName());
			}
		});
		for (SortEntity s:selist) {
			System.out.println(s.getName());
		}
	}
}

 

时间: 2024-08-09 10:42:45

JAVA中List 排序的相关文章

Comparable与Comparator,java中的排序与比较

1:比较和排序的概念 比较:两个实体类之间按>,=,<进行比较. 排序:在集合类中,对集合类中的实体进行排序.排序基于的算法基于实体类提供的比较函数. 基本型别都提供了默认的比较算法,如string提供了按字母进行比较,int提供了按整数大小进行比较. 2:Comparable与Comparator but,在软件开发的世界中,任何没有代码的堆概念都是耍流氓.所以,无论我们解释的多么完美,必须show me the code: 我们首先看这样一段代码: public class Collect

Java中各种排序算法

//插入排序:package org.rut.util.algorithm.support; import org.rut.util.algorithm.SortUtil;/** * @author treeroot * @since 2006-2-2 * @version 1.0 */public class InsertSort implements SortUtil.Sort{ /** (non-Javadoc) * @see org.rut.util.algorithm.SortUtil

Java中冒牌排序算法

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面. 即首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数.如此下去,直至最终

java中的排序Comparable接口和Comparator接口

普通的类要实现排序,必须实现Comparable接口,并重写CompareTo()方法. package test; public class Field implements Comparable<Field> {     private String name;     private int age;     public Field() {     }     public Field(String name, int age) {         this.name = name;

Java中集合排序的两种方法

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * <p> * ClassName CollectionsSort * </p> * <p> * Description 主要介绍两种集合的排序算法<br/> * 第一:java.util.Collections.sort(jav

Java中字符串排序

package com.fs.test; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Listdemo { public void m1() { List<String> list = new ArrayList<String>(); list.add("a"); list.add("c"); lis

java中的排序除了冒泡以来, 再给出一种方法, 举例说明

9.5 排序:   (视频下载) (全部书籍)有一种排序的方法,非常好理解,详见本题的步骤,先找出最大值和最小值,把最小值打印出来后,把它存在另一个数组b当中,再删除此最小值,之后再来一次找出最小值,打印出最小值以后,再把它存在另一个数组b当中,再删除此最小值,这样循环往复,直到做完,你就会发觉,你已经把排了序数放在b数组当中了,而这里的彻底删除最小值的方法就是用比最大值还大一的数来取代最小值.(自己想想为什么?)参考后面的答案你会发觉,按照下面的四步,你已经把一个数组排序了. i)make a

java中List对象列表去重或取出以及排序

面试碰到几次list的去重和排序.下面介绍一种做法: 1. list去重 1.1 实体类Student List<Student>容量10k以上,要求去重复.这里Student的重复标准是属性相同,因此需要重写equals和hashcode方法,不知道有几个可以手写出来. student的equals方法: public void equals(Object o){ if(this == o) retun true; if(!(o instanceof Student)) return fal

Java 中对类进行排序的方法(转)

JAVA中的比较器接口Comparable用于数组对象的排序,要使用此功能,必须让类继承自Comparable接口,重写compareTo(Object obj)方法. import java.util.*; class Person implements Comparable{ private String name; private int age; private float score; public Person(String name,int age,float score){