java中的升序用什么表示,java中对象排序的概念是什么?实例代码展示

在我们的日常工作与生活当中,java的使用是十分广泛的。今天就来为大家介绍一下,java中对象排序的概念是什么,并且通过实际的代码为大家展示。

首先说一下java中对象排序的概念。在集合或者数组中,有时候需要对里面的元素,也就是对象进行排序,依照对象的某个或者某几个属性从大到小或者从小到大进行排序,我们可以采用直接编码的方式,将集合或者数组中的元素进行重新排列,但是,采用java本身提供的接口,是最便捷的方法。

java可以用两种方式来比较功能。

1.实现java.lang.Comparable接口,它有一个int compareTo(Object

o)方法,重写此方法就可以了。代码展示如下:package compare;

public class People implements Comparable

{

private int id;

private String name;

public People(int id, String name)

{

this.id = id;

this.name = name;

}

/*

* 这里表示按id从小到大排序,如果该对象小于、等于或大于指定对象Object o,则分别返回负整数、零或正整数

* 如果需要从大到小排序,则如果该对象小于、等于或大于指定对象Object o,则分别返回正整数、零或负整数

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

*/

public int compareTo(Object o)

{

People people = (People) o;

if (id 

{

return -1;

}

if (id > people.getId())

{

return 1;

}

return 0;

}

public int getId()

{

return id;

}

public void setId(int id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

}

测试代码如下:List peopleList = new ArrayList();

peopleList.add(new People(2, "张三"));

peopleList.add(new People(1, "李四"));

peopleList.add(new People(0, "王五"));

System.out.println("排序前");

for (int i = 0; i 

{

People people = (People) peopleList.get(i);

System.out.println(people.getId() + " " + people.getName());

}

Collections.sort(peopleList);

System.out.println("排序后");

for (int i = 0; i 

{

People people = (People) peopleList.get(i);

System.out.println(people.getId() + " " + people.getName());

}

运行结果如下:排序前

2 张三

1 李四

0 王五

排序后

0 王五

1 李四

2 张三

2.实现java.util.Comparator接口,重写int compare(Object o1, Object

o2)方法就可以了。代码展示如下:package compare;

import java.util.Comparator;

public class Compare implements Comparator

{

/*

* 这里表示按id从小到大排序,如果该对象o1小于、等于或大于指定对象o2,则分别返回负整数、零或正整数

* 如果需要从大到小排序,则如果对象o1小于、等于或大于指定对象o2,则分别返回正整数、零或负整数

* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)

*/

public int compare(Object o1, Object o2)

{

Student s1 = (Student) o1;

Student s2 = (Student) o2;

if (s1.getId() 

{

return -1;

}

if (s1.getId() > s2.getId())

{

return 1;

}

return 0;

}

}

Student类代码如下:package compare;

public class Student

{

private int id;

private String name;

public Student(int id, String name)

{

this.id = id;

this.name = name;

}

public int getId()

{

return id;

}

public void setId(int id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

}

测试代码如下:List  list = new ArrayList  ();

Student s1 = new Student(1, "a");

Student s2 = new Student(2, "b");

Student s3 = new Student(3, "c");

list.add(s3);

list.add(s2);

list.add(s1);

System.out.println("排序前");

for (int i = 0; i 

{

Student s = list.get(i);

System.out.println(s.getId() + " " + s.getName());

}

Collections.sort(list, new Compare());

System.out.println("排序后");

for (int i = 0; i 

{

Student s = list.get(i);

System.out.println(s.getId() + " " + s.getName());

}

运行结果如下:排序前

3 c

2 b

1 a

排序后

1 a

2 b

3 c

可以看出,结果和预期是相同的。

由上可知,这两种方法都可以实现按照对象的属性进行排序,或者自己定义排序规则,不过第二种方式,使用起来更加方便,推荐使用。

以上就是关于java中对象排序的概念展示,以及通过实际的代码为大家展现出来。想要了解更多java经典例子以及常见问题,敬请关注奇Q工具网。

推荐阅读:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值