Java-对象数组排序
1.对对象数组排序:对象要提供一个compare方法比较对象的大小
2.代码
package Test;
public class TestObjectArray {
public static void main(String[] args) {
Date [] dates = new Date[5];
dates[0] = new Date(2000,1,2);
dates[1] = new Date(2001,2,3);
dates[2] = new Date(1997,9,8);
dates[3] = new Date(2000,1,2);
dates[4] = new Date(1997,9,3);
for(Date d : dates){
System.out.print(d+"\t");
}
System.out.println();
bubbleSort(dates);
for(Date d : dates){
System.out.print(d+"\t");
}
}
private static void bubbleSort(Date[] dates) {
Date tmp;
for(int i = dates.length - 1; i > 0; i--){
for(int j = 0; j < i; j++){
if(dates[j].compare(dates[j+1]) > 0){
tmp = dates[j];
dates[j] = dates[j+1];
dates[j+1] = tmp;
}
}
}
}
//选择排序
private static void selectSort(Date[] dates) {
int index;
Date temp;
for(int i = 0; i < dates.length; i++){
index = i;
for(int j = i; j < dates.length; j++){
if(dates[index].compare(dates[j])>0){
index = j;
}
}
if(i!=index){
temp = dates[i];
dates[i] = dates[index];
dates[index] = temp;
}
}
}
}
class Date{
int year, month, day;
public int getMonth() {
return month;
}
public int getDay() {
return day;
}
public int getYear() {
return year;
}
public Date(int year, int month, int day) {
super();
this.year = year;
this.month = month;
this.day = day;
}
@Override
public String toString() {
return year+"-"+month+"-"+day;
}
public int compare(Date d){
return this.getYear() > d.getYear() ? 1 :
this.getYear() < d.getYear() ? -1 : //年份即不是大于,又不是小于,则一定是等于,等于则继续比较月份
this.getMonth() > d.getMonth() ? 1 :
this.getMonth() < d.getMonth() ? -1:
this.getDay() > d.getDay() ? 1 :
this.getDay() < d.getDay() ? -1 : 0;
}
}
3.运行结果:

Java-对象数组排序的更多相关文章
- 37-Arrays.sort() 由大到小排序 和 对象数组排序
1. 由大到小排序: 2. 对象数组排序: 1. 由大到小排序: 注意:必需是Integer 类型的数组!!! 方法一: import java.util.Arrays; import java.ut ...
- Java对象序列化剖析
对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...
- 通过JAXB完成Java对象与XML之间的转换
Java对象转换XML的过程叫marshal. XML转换到Java对象的过程叫unmarshal. 一.Java对象转化为XML 这里省略getter和setter方法 通过标注@XMLRootEl ...
- json相关类库,java对象与json相互转换
有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...
- Hibernate 系列 07 - Hibernate中Java对象的三种状态
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...
- 理解Java对象序列化
http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html 1. 什么是Java对象序列化 Java平台允许我们在内存中创 ...
- java对象与XML相互转化
起因 最近在公司做了一次webservice相关的任务,其中我最敢兴趣的就是webservice接受到XML对应的流以后是如何方便的转化成java对象,而java对象又是如何生成对应的XML的. 目的 ...
- java 对象序列化与反序列化
Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为 ...
- Java对象大小计算
这篇说说如何计算Java对象大小的方法.之前在聊聊高并发(四)Java对象的表示模型和运行时内存表示 这篇中已经说了Java对象的内存表示模型是Oop-Klass模型. 普通对象的结构如下,按64位机 ...
- Java基础学习总结——Java对象的序列化和反序列化
一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...
随机推荐
- 2. VS使用---HelloWorld
摘要: ------------------------------------------------------------------------------------- 1. VS2010里 ...
- Web中Listener的创建
使用Listener只需要两个步骤: 定义Listener实现类. 通过Annotation或在web.xml文件中配置Listener 实现Listener类 监听不同Web事件的监听器不相同,常用 ...
- 分布式架构--第一篇--项目拆分(maven命令生成多模块项目)
预览生成的项目结构: ying-yue-parent // 顶级总编译控制模块 ying-yue-lib // jar模块 ying-yue-model // 模型对象模块 ying-yue-dao ...
- c判断括弧是否匹配
这里我没有用堆栈.直接用一个数组input[SIZE]接收用户的输入,在遍历数组,对数组进行操作.已经匹配好的括弧直接用#号覆盖,最后遍历数组.如果数组只有#号,没有其他元素,则匹配.否则不匹配. / ...
- 设计模式 -- 单例模式(Java&&PHP)
所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在.就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等. 能够 ...
- M1分数分配
进过第一轮迭代我们依据工作量及质量决定分配分数方案: 王皓南 24.5分 黄宇冰 24分 申开亮 23.5分 许晋 21分 王宇杰 17分 吴润凡 16分 巴丹益昔 14分
- 图片上传前的预览(PHP)
1.先创建一个file表单域,我们需要用它来浏览本地文件.<form name="form1" id="form1" method="post& ...
- git删除远程分支和本地分支
问题描述: 当我们集体进行项目时,将自定义分支push到主分支master之后,如何删除远程的自定义分支呢 问题解决: (1)使用命令git branch -a 查看所有分支 ...
- java中的匿名内部类
匿名内部类在java编码中不是很常见,它可一让类实现多继承的特性(多个父类~1个子类) java中的匿名内部类总结http://www.cnblogs.com/nerxious/archive/201 ...
- Nodejs Express 4.X 中文API 3--- Response篇
相关阅读: Express 4.X API 翻译[一] -- Application篇 Express4.XApi 翻译[二] -- Request篇 Express4.XApi 翻译[三] -- ...