`
kidiaoer
  • 浏览: 822440 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

如何将对象进行排序

J# 
阅读更多
  用冒泡法对对象进行排序。


public class Job {

	private String no;
	private String name;
	private String grade;
	private String ranking;

	public String getNo() {
		return no;
	}

	public void setNo(String no) {
		this.no = no;
	}

	public String getName() {
		return name;
	}

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

	public String getGrade() {
		return grade;
	}

	public void setGrade(String grade) {
		this.grade = grade;
	}

	public String getRanking() {
		return ranking;
	}

	public void setRanking(String ranking) {
		this.ranking = ranking;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((grade == null) ? 0 : grade.hashCode());
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		result = prime * result + ((no == null) ? 0 : no.hashCode());
		result = prime * result + ((ranking == null) ? 0 : ranking.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Job other = (Job) obj;
		if (grade == null) {
			if (other.grade != null)
				return false;
		} else if (!grade.equals(other.grade))
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		if (no == null) {
			if (other.no != null)
				return false;
		} else if (!no.equals(other.no))
			return false;
		if (ranking == null) {
			if (other.ranking != null)
				return false;
		} else if (!ranking.equals(other.ranking))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Job [no=" + no + ", name=" + name + ", grade=" + grade
				+ ", ranking=" + ranking + "]";
	}

}






import java.util.List;

public class TestSort {

	public static Job[] mySort(List<Job> list) {
		int len = list.size();
		Job[] array = new Job[len];
		for (int i = 0; i < len; i++) {
			array[i] = list.get(i);
		}
		Job temp = null;
		for (int i = 0; i < len; i++) {
			for (int j = 0; j < len - 1; j++) {
				int grade1 = Integer.parseInt(array[i].getGrade());
				int grade2 = Integer.parseInt(array[j].getGrade());
				if (grade1 > grade2) {
					temp = array[i];
					array[i] = array[j];
					array[j] = temp;
				}
			}
		}
		return array;
	}

	public static Job[] paixu(Job[] array) {
		int len = array.length;
		for (int i = 0; i < len; i++) {
			if (i != array.length && i != 0) {
				int grade1 = Integer.parseInt(array[i].getGrade());
				int grade2 = Integer.parseInt(array[i - 1].getGrade());
				if (grade1 == grade2) {
					array[i].setRanking(array[i - 1].getRanking());
				} else {
					array[i].setRanking(i + 1 + "");
				}
			} else {
				array[i].setRanking(1 + "");
			}
		}
		return array;
	}

}




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

public class JobDemo {

	public static void main(String[] args) {
		Job[] array = TestSort.mySort(init());
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
		System.out.println(" ========================  ");
		Job[] jobArray = TestSort.paixu(array);
		for (int i = 0; i < jobArray.length; i++) {
			System.out.println(jobArray[i]);
		}
	}

	private static List<Job> init() {
		List<Job> list = new ArrayList<Job>();
		Job job = null;
		job = new Job();
		job.setNo(" 11 ");
		job.setName(" test ");
		job.setGrade("67");
		list.add(job);
		
		job = new Job();
		job.setNo(" 22 ");
		job.setName(" test ");
		job.setGrade("67");
		list.add(job);
		
		job = new Job();
		job.setNo(" 33 ");
		job.setName(" test ");
		job.setGrade("78");
		list.add(job);
		
		job = new Job();
		job.setNo(" 44 ");
		job.setName(" test ");
		job.setGrade("55");
		list.add(job);
		
		job = new Job();
		job.setNo(" 55 ");
		job.setName(" test ");
		job.setGrade("99");
		list.add(job);

		job = new Job();
		job.setNo(" 66 ");
		job.setName(" test ");
		job.setGrade("78");
		list.add(job);
		
		job = new Job();
		job.setNo(" 77 ");
		job.setName(" test ");
		job.setGrade("55");
		list.add(job);
		return list;
	}

}

分享到:
评论

相关推荐

    js对象属性排序

    1. **转换为数组并排序**:将对象的属性名转化为数组,然后利用数组的`sort()`方法进行排序。例如: ```javascript let obj = {c: 3, a: 1, b: 2}; let sortedKeys = Object.keys(obj).sort(); let sortedObj = ...

    JAVA 对象数组按照多个属性进行排序

    当我们需要根据对象的多个属性进行排序时,情况会变得稍微复杂。本文将深入探讨如何在Java中实现这个功能,结合给出的标签“源码”和“工具”,我们将讨论标准库中的`Comparator`接口和`Collections.sort()`方法,...

    arraylist 对象 数组排序

    当我们说“arraylist对象中的某个值排序”时,这通常指的是对ArrayList中的元素,而不是ArrayList本身进行排序。ArrayList不支持直接排序,但是我们可以通过调用Collections.sort()方法或者自定义Comparator来实现。...

    java 按对象属性排序

    这里我们探讨的主题是如何根据对象的属性进行排序,结合提供的`Simple.java`和`User.java`文件,我们可以假设这是一个关于自定义对象排序的例子。下面将详细解释相关知识点。 1. **Comparable接口**: Java中的`...

    多个对象列表排序

    在处理包含多种类型对象的列表时,我们经常需要根据对象的某个或多个属性进行排序。这个过程称为多条件排序或多字段排序。本文将深入探讨如何在Java和Android环境中实现这个功能。 首先,让我们理解基础的排序方法...

    山大面向对象实验 排序算法

    1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法和顺序要求,保证其他程序不修改 4.减少程序代码中逻辑上的冗余 5.至少用两种方案编程实现该程序包,...

    js对象数组按属性快速排序

    按所推荐的程序在IE下跑了下,的确,排序耗时很小。 代码如下: [removed] /* * 洗牌 */ function getRandomPlayCard(m){ var array1=new Array(m); for(var i=0;i&lt;m;i++){ var rnd=Math.floor(Math.random()*(i+0...

    集合对象排序

    在编程领域,集合对象排序是一项基础且重要的任务,它涉及到数据结构和算法的知识。当我们处理包含多个元素的数据集,如数组、列表或集合时,排序能够帮助我们快速查找、分析和展示信息。本文将深入探讨如何对对象...

    java List中对象多属性排序及各属性排序设置

    本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和自定义比较器(Comparator)来完成的,对于复杂的数据排序需求具有很高的灵活性。...

    Java 对象排序详解.rar_java 对象排序_对象_排序

    在Java编程语言中,对象排序是一项关键操作,特别是在处理集合数据结构时。本文将深入探讨如何对ArrayList、HashSet、TreeSet以及数组中的对象进行排序。理解这些排序机制对于编写高效且可维护的代码至关重要。 ...

    面向对象——排序

    Hoare在1960年提出,是一种高效的排序算法,其基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序。...

    List对象排序通用方法

    List对象排序通用方法List对象排序通用方法List对象排序通用方法List对象排序通用方法

    根据对象属性将对象排序

    ### 根据对象属性将对象排序 在编程领域中,我们经常会遇到需要对一组对象进行排序的需求。这种排序可以基于单个属性或者多个属性来进行。本文档将详细讲解如何通过对象的一个或多个属性来实现对象的排序,并支持...

    面向对象思想-排序算法

    在这个上下文中,我们将探讨如何运用面向对象思想来实现不同的排序算法,如快速排序、选择排序和冒泡排序,并考虑升序、降序以及字典排序的需求。 首先,**封装**是面向对象编程的基本原则之一,它意味着将数据和...

    Sorter排序类实现

    1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法和顺序要求,保证其他程序不修改 4.减少程序代码中逻辑上的冗余 5.至少用两种方案编程实现该程序包,...

    List 对象属性排序

    在Java编程中,经常需要对`List`集合中的对象按照特定属性进行排序。传统的方法是在每个实体类中重写`Comparable`接口或提供比较器(`Comparator`),这不仅增加了代码量,而且降低了代码的可维护性和复用性。为了...

    VS2008--利用委托给对象排序.rar

    总的来说,这个教程将帮助你理解如何在VS2008中利用委托进行对象排序,以及如何通过添加水印来保护你的工作。掌握这些技能将有助于你编写更加灵活和可维护的代码,同时也能提高你处理数据和呈现结果的能力。

    Java 对象属性map排序示例

    本示例将详细介绍如何对Java对象属性Map进行排序。 首先,了解Map的基本类型。Java提供了HashMap、TreeMap等实现Map接口的类。HashMap是非排序的,而TreeMap是基于红黑树数据结构,会按照键的自然顺序或者自定义...

    Java面向对象思想的排序方法

    本文将深入探讨如何运用面向对象思想来实现排序方法,这其中包括了多种不同的排序算法,如冒泡排序、选择排序、插入排序、快速排序等。这些排序方法在实际开发中有着广泛的应用,例如在数据处理、数据库索引构建以及...

    用面向对象程序设计对单链表进行归并排序

    在本案例中,我们将利用面向对象的方法对单链表进行归并排序,这是一种高效的排序算法,尤其适用于大规模数据。归并排序采用分而治之的策略,将大问题分解为小问题,再逐个解决,最后合并结果。 1. **分而治之思想*...

Global site tag (gtag.js) - Google Analytics