java 对象比,Java对象对比

大家好,我是

一网菜鸟网(http://www.sklll.com)站长,网站目前正在维护中,今天在这里做一下java对象对比的简单文章说明,大家有什么不懂的可以给我留言或者到我群(225223397)内一起导论,我邮箱sklll@126.com。

java api针对集合类型排序提供了2种支持:

java.util.Collections.sort(java.util.List)

java.util.Collections.sort(java.util.List, java.util.Comparator)

第一种要求所排序的对象必须实现Comparable接口,并覆盖里面的comparTo()方法。请看代码:

package org.zy.model;

/**

* @date 2014-2-18

* @author 沈坤林

* @url http://www.zhiyunhome.com

* @des 芷云学习网

* @tieba

*/

public class People implements Comparable {

private String peopleName;

private int peopleAge;

public People(String name,int age){

this.peopleAge=age;

this.peopleName=name;

}

/**

* @return get方法

*/

public String getPeopleName() {

return peopleName;

}

/**

* @param peopleName

* set 方法

*/

public void setPeopleName(String peopleName) {

this.peopleName = peopleName;

}

/**

* @return get方法

*/

public int getPeopleAge() {

return peopleAge;

}

/**

* @param peopleAge

* set 方法

*/

public void setPeopleAge(int peopleAge) {

this.peopleAge = peopleAge;

}

/*

* (non-Javadoc)

*

* @see java.lang.Comparable#compareTo(java.lang.Object)

*/

@Override

public int compareTo(People o) {

// TODO Auto-generated method stub

//return this.peopleAge-o.peopleAge;

return this.peopleName.compareTo(o.getPeopleName());

}

}

这里是People对象实现了Comparable接口并覆盖了comparTo()方法。

如果要进行升序排序,直接使用Collections.sort(List list);降序排列就使用Collections.sort(List xx,Comparator x);

如果你要按照集合对象的某一个int型进行排序,覆盖的comareTo方法中直接返回两者的差就可以了,如果是String类型,直接返回字段的比较值就可以了。

测试代码如下:

package test.org.zy.model;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import org.junit.Before;

import org.junit.Test;

import org.zy.model.People;

/**

* @date 2014-2-18

* @author 沈坤林

* @url http://www.zhiyunhome.com

* @des 芷云学习网

* @tieba

*/

public class PeopleTest {

private static List peoples = null;

@Before

public void initList(){

People p1=new People("张珊", 21);

People p2=new People("刘珊", 22);

People p3=new People("李珊", 23);

People p4=new People("赵珊", 24);

People p5=new People("沈珊", 20);

People p6=new People("吴珊", 19);

peoples = new ArrayList();

peoples.add(p1);

peoples.add(p2);

peoples.add(p3);

peoples.add(p4);

peoples.add(p5);

peoples.add(p6);

}

@Test

public void sortTest() {

System.out.println("==========升序排序===============");

Collections.sort(peoples);

for (People pe : peoples) {

System.out.println("姓名:"+pe.getPeopleName()+" 年龄:"+pe.getPeopleAge());

}

System.out.println("==========降序排序===============");

Collections.sort(peoples, Collections.reverseOrder());

for (People pe : peoples) {

System.out.println("姓名:"+pe.getPeopleName()+" 年龄:"+pe.getPeopleAge());

}

}

}

运行结果如下:

(1)按照peopleAge排序:

91d9f22af12a2d9bac1e6ac125cf1474.png

(1)按照peopleName排序:

7d3833bc2262c260b4811d738a940541.png

就这么多了,如果还有什么疑问,请到群内一起讨论:181492057

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值