`
lhkzyz
  • 浏览: 347732 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java集合类多条件排序

阅读更多
package sort;

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

/**
 * 排序规则,按照年龄排序,若年龄相同,按照工资排序,若工资相同,按照身高排序
 * @author Administrator
 *
 */
public class TestObjectSort {
	public static void main(String[] args) {
		List<Student> students=new ArrayList<Student>();
		students.add(new Student("zhangsan",21,3000,180));
		students.add(new Student("zhangsan",27,4000,180));
		students.add(new Student("zhangsan",15,1000,180));
		students.add(new Student("zhangsan",21,5000,180));
		students.add(new Student("zhangsan",45,4000,180));
		students.add(new Student("zhangsan",21,5000,174));
		students.add(new Student("zhangsan",20,4000,180));
		students.add(new Student("zhangsan",33,4000,180));
		students.add(new Student("zhangsan",45,4000,180));
		students.add(new Student("zhangsan",76,4000,180));
		students.add(new Student("zhangsan",99,4000,180));
		students.add(new Student("zhangsan",21,5000,160));
		
		Collections.sort(students, new Comparator<Student>(){
				      public int compare(Student a1, Student a2) {
				 	            int x = a1.getAge() - a2.getAge();
				                int y = a1.getSalary() - a2.getSalary();
				 	            int z = a1.getHeight() - a2.getHeight();
				          if(x==0){
				                 if(y==0){
				                        return z;
				                  }
				                return y;
				            }
				            return x;
				        }
				         
					    });
		
		for(Student s:students){
			System.out.println(s.getName()+"\t"+s.getAge()+"\t"+s.getSalary()+"\t"+s.getHeight());
		}
	}
}



class Student{
	
	Student(String name,int age,int salary,int height){
		
		this.name=name;
		this.age=age;
		this.salary=salary;
		this.height=height;
		
	}
	private String name;
	
	private int  age;
	
	private int salary;
	
	private int height;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getSalary() {
		return salary;
	}

	public void setSalary(int salary) {
		this.salary = salary;
	}

	public int getHeight() {
		return height;
	}

	public void setHeight(int height) {
		this.height = height;
	}
	
	
	
	
}
	
	
	
	
	

 打印结果

zhangsan	15	1000	180
zhangsan	20	4000	180
zhangsan	21	3000	180
zhangsan	21	5000	160
zhangsan	21	5000	174
zhangsan	21	5000	180
zhangsan	27	4000	180
zhangsan	33	4000	180
zhangsan	45	4000	180
zhangsan	45	4000	180
zhangsan	76	4000	180
zhangsan	99	4000	180
 
0
0
分享到:
评论
2 楼 java门徒CZP 2012-11-06  
数据量大时的速度??
1 楼 showtimes52007 2012-11-06  
也就相当于分组,然后排序嘛.

相关推荐

    Java 集合排序及java 集合类详解

    Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...

    Java集合排序及java集合类详解.pdf

    Java集合排序及java集合类详解.pdf

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    java 集合分组与排序

    总结来说,Java集合框架提供了强大的工具来处理分组和排序,包括`List`接口的`sort()`方法和流API的`groupingBy()`和`sorted()`。在实际项目中,可以根据需求选择合适的方法。同时,`ArrayHelp`和`ClassLoadUtil`...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...

    java集合类线程安全.doc

    所涉及的集合类不仅包括 Java SE 1.2 引入的集合类,还包括旧集合类(Java SE 1.2 前引入)和新集合类(Java SE 5 引入)。 Java 线程安全的等级定义根据 Bloch 的定义,将线程安全分为五个等级: 1. 非可变:如果...

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    Java对List多个排序、查询条件的处理

    在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...

    java 集合排序及java集合类详解

    java 集合排序及java集合类详解,本文详细解释了关于java中的集合实现,以及他们的实现原理

    java自定义集合类

    自定义集合类则是开发者根据特定需求扩展Java集合框架的行为,以满足个性化或特定业务场景的功能需求。以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些...

    java集合类总结

    本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。Collection接口定义了通用的操作方法,如`add()`用于...

    第13讲 JAVA集合类.ppt

    Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...

    java集合类演示源码

    集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...

    Java中的Comparator 对多个排序条件的处理

    `MultipleComparatorTest.java`可能是这个话题的一个测试类,其中包含了具体测试用例,验证了上述多条件排序的实现。测试通常会创建一组`Person`对象,使用`multiComparator`进行排序,并检查排序结果是否符合预期。...

Global site tag (gtag.js) - Google Analytics