`
yxx676229549
  • 浏览: 73870 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于java排序,自己写一个对对象内部数据的排序

阅读更多

自己写一个对对象内部数据的排序,有几点想法:

第一:参考comparable 的comparaTo()以及mergeSort()方法;

第二:参考arrays的sort方法

 

几个疑问:

第一:关于排序法的区别?耗费的时间?

第二:怎么做到算法的通用?

 

高手指点指点...

 

贴代码:

public interface Generator {

	Object next();
}

 

package star20110427;

import java.util.Random;


import star20110426.Generator;

/**
 * 二维数组排序
 * @author *
 */
public class SimpleSort {

	private static Random random = new Random();
	private static Generator getGenerator(){
		return new Generator(){
			@Override
			public Object next() {
				return new Num(random.nextInt(100),random.nextInt(100));
			}
		};
	}
	
	private static Num[] getNums(int count){
		Num[] nums = new Num[count];
		for (int i = 0; i < nums.length; i++) {
			nums[i] = (Num) getGenerator().next();
		}
		return nums;
	}
	
	
	
	public static void main(String[] args) {
		Num[] nums = getNums(1000);
		for (int i = 0; i < nums.length; i++) {
			System.out.println(nums[i]);
		}
		for (int i = 0; i < nums.length; i++) {
			for (int j = nums.length-1; j > i; j--) {
				if (nums[i].i > nums[j].i) {
					Num temp = nums[j];
					nums[j] = nums[i];
					nums[i] = temp;
				}
				if (nums[i].i == nums[j].i) {
						if (nums[i].j > nums[j].j) {
							Num temp = nums[j];
							nums[j] = nums[i];
							nums[i] = temp;
						}
				}
			}
		}
		System.out.println("===================");
		for (int i = 0; i < nums.length; i++) {
			System.out.println(nums[i]);
		}
	}
}


class Num{
	int i ;
	int j;
	public Num(int i,int j) {
		this.i = i;
		this.j = j;
	}
	public int getI() {
		return i;
	}
	public void setI(int i) {
		this.i = i;
	}
	public int getJ() {
		return j;
	}
	public void setJ(int j) {
		this.j = j;
	}
	@Override
	public String toString() {
		return "i="+i+"     j="+j;
	}
}

 

 

 

1
3
分享到:
评论

相关推荐

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

    在Java编程中,对象数组排序是一项常见的任务,...以上就是关于“JAVA 对象数组按照多个属性进行排序”的详细解析,希望对你理解Java排序机制有所帮助。在实际开发中,灵活运用这些技巧可以提高代码的可维护性和效率。

    面向对象java排序包

    【面向对象Java排序包】是基于Java编程语言设计的一个专门用于处理排序问题的软件组件。这个包充分体现了面向对象的设计原则,将数据结构、算法和业务逻辑封装在独立的对象中,提高了代码的可读性和可维护性。它不仅...

    java 中文姓氏 排序

    如果我们需要对一个对象列表中的某个字段(如年龄)进行排序,可以创建一个 `Comparator` 实现。 ```java import java.util.*; import java.text.*; public class JobCandidateSort { public static void main...

    java List 排序 Collections.sort

    然后,我们创建一个Person对象的List,并使用`Collections.sort()`进行排序: ```java List&lt;Person&gt; people = new ArrayList(); people.add(new Person("Alice", 30)); people.add(new Person("Bob", 25)); people....

    java排序简单介绍

    Java排序是程序开发中常见的一种任务,主要用于对数据集合进行有序排列。在Java中,有多种内置和自定义的排序算法可供选择,每种都有其特定的适用场景和性能特点。下面将详细介绍几种常见的Java排序方法。 1. **...

    用java语言写的四种排序算法

    在Java中,封装是面向对象编程的一个重要原则,它将数据和操作数据的方法绑定在一起,形成一个独立的单元,提高了代码的可维护性和复用性。在这些排序算法的实现中,我们可能看到类的使用,每个类代表一种排序算法,...

    Java中实现参数名ASCII码从小到大排序(字典序).doc

    在Java编程中,有时我们需要对一组参数...通过以上分析,我们可以看到`createSign`方法在处理参数排序时的高效和灵活性,它是Java编程中处理有序数据的一个典型应用。在实际项目中,可以根据需求对其进行调整和优化。

    JAVA各种排序方法及改良

    在编程领域,排序是至关重要的一个环节,尤其是在Java这样的面向对象语言中。本文将深入探讨Java中的各种排序方法以及它们的改良策略。首先,我们来看看几种基础的排序算法,然后讨论如何通过优化来提高这些算法的...

    Java 中文排序 使用pinyin4j组件

    在Java编程语言中,对中文字符串进行排序是一个相对复杂的问题,因为中文字符的排序不能简单地按照Unicode编码顺序来处理。通常,我们需要考虑汉字的拼音或者笔画等属性来进行排序。这里我们将详细介绍如何使用`...

    Java对象排序中文排序SortedSet排序使用和源码讲

    首先,SortedSet是Java集合框架中的一个接口,它继承自Set接口并添加了排序的特性。SortedSet的主要实现类有TreeSet,它基于红黑树(Red-Black Tree)数据结构,保证了插入、删除和查找操作的高效性。 要实现Java...

    数据结构之JAVA排序JAVASORT.pdf

    本文件“数据结构之JAVA排序JAVASORT.pdf”很可能是对Java中排序算法的一个深入探讨。下面我们将详细讲解Java中的排序算法及其重要性。 首先,我们要理解什么是排序。排序是指将一组数据按照特定的顺序进行排列的...

    java 集合和内部类资料

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的实现,使得在处理对象集合时更加高效和灵活。集合框架包括接口、类和算法,这些都集中在`java.util`包中。主要的集合接口有List、Set...

    Java数据结构与面向对象编程基础

    Java数据结构与面向对象编程是计算机科学中的核心概念,它们对于任何Java开发者来说都是不可或缺的知识。数据结构是指在计算机中组织、存储和处理数据的方式,而面向对象编程(Object-Oriented Programming,OOP)是...

    java版本List中对象多属性排序.rar

    在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在Java中实现此类排序的示例或教程。 首先,让我们理解基本概念。在Java中,`List`接口是`Collection`框架的一部分,它允许我们...

    java 中 TreeMap排序

    当我们需要自定义排序规则时,可以通过传递一个实现了`Comparator`接口的匿名内部类给`TreeMap`构造函数来实现。在提供的代码片段中,我们看到了两种自定义排序的例子: a) 对于简单的排序,如数字和英文字母,...

    Java源码对用户名进行比较排序.rar

    在Java编程语言中,对用户名进行比较排序是一个常见的任务,特别是在开发用户管理系统或者任何涉及到用户数据展示的应用中。这个任务通常涉及到字符串的比较和排序,Java提供了强大的工具来实现这一功能。下面我们将...

    java中的排序.ppt

    Java 中的排序可以分为三种类型:简单类型排序、内部对象实现 Comparable 和外部对象实现 Comparator。 简单类型排序 简单类型包括 byte, char, short, int, long, float, double 等数据类型。这些类型不能放在...

    Java 基础各种排序总结

    在编程领域,排序是至关重要的一个概念,尤其是在Java这样的面向对象编程语言中。本文将深入探讨Java中的各种排序算法,帮助你巩固理解并提升编程技能。 首先,我们从最基本的内部排序算法开始,如冒泡排序(Bubble...

    java 数组递增排序

    它选取一个基准值,将数组分为小于基准值和大于基准值的两部分,然后递归地对这两部分进行排序。快速排序的平均时间复杂度为O(n log n)。 在Java中,`Arrays.sort()` 方法提供了对数组的排序功能,它内部实现了高效...

    java排序例子

    例如,对于整数数组,我们可以使用`Arrays.sort(int[])`,而对于自定义对象,我们需要实现`Comparable`接口或者提供一个`Comparator`来定义比较规则。 1. **冒泡排序**:这是一种简单的排序算法,通过重复遍历待...

Global site tag (gtag.js) - Google Analytics