java数据对排序_Java中如何对具有多个数据的对象进行排序

我在pojo类中的单个值中有很多排序示例.

但是我想用多个值排序看起来像下面的例子

排序之前

Name City Roll

--------------------------------------

sekhar ---------bbsr------------23

himanshu -------agra------------23

nitin ----------delhi------------23

nitin ----------delhi------------22

nitin ----------bbsr------------23

arun -----------patna------------23

arun -----------kendrapara-------23

经过排序

Name City Roll

--------------------------------------

arun -------kendrapara------------23

arun -------patna------------23

himanshu ----agra------------23

nitin -------bbsr------------23

nitin -------delhi------------22

nitin -------delhi------------23

sekhar -------bbsr------------23

我的代码在这里

package example;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

public class Demo {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Demo demo = new Demo();

List list = new ArrayList(); // your Car list

Student st = demo.new Student();

st.setName("sekhar");

st.setCity("bbsr");

st.setRoll(23);

list.add(st);

st = demo.new Student();

st.setName("himanshu");

st.setCity("agra");

st.setRoll(23);

list.add(st);

st = demo.new Student();

st.setName("nitin");

st.setCity("delhi");

st.setRoll(23);

list.add(st);

st = demo.new Student();

st.setName("nitin");

st.setCity("delhi");

st.setRoll(22);

list.add(st);

st = demo.new Student();

st.setName("nitin");

st.setCity("bbsr");

st.setRoll(23);

list.add(st);

st = demo.new Student();

st.setName("arun");

st.setCity("patna");

st.setRoll(23);

list.add(st);

st = demo.new Student();

st.setName("arun");

st.setCity("kendrapara");

st.setRoll(23);

list.add(st);

System.out.println("before sort");

System.out.println("Name:" + "-------------------" + "City...........roll");

for (Student st1 : list) {

System.out.println(st1.getName() + " --------------" + st1.getCity() + "------------" + st1.getRoll());

}

Collections.sort(list, demo.new CarHorsePowerComparator());

System.out.println("after sort");

System.out.println("Name:" + "-------------------" + "City...............roll");

for (Student st1 : list) {

System.out.println(st1.getName() + " --------------" + st1.getCity() + "------------" + st1.getRoll());

}

}

public class Student {

String name;

String city;

int roll;

public int getRoll() {

return roll;

}

public void setRoll(int roll) {

this.roll = roll;

}

public String getCity() {

return city;

}

public void setCity(String city) {

this.city = city;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

class CarHorsePowerComparator implements Comparator {

public int compare(Student stu, Student stu1) {

int sort = (stu.getName() + stu.getCity() + stu.getRoll()).compareTo((stu1.getName() + stu1.getCity() + stu1.getRoll()));

return sort;

}

}

}

但我正在使用自定义比较器

class CarHorsePowerComparator implements Comparator {

public int compare(Student stu, Student stu1) {

int sort = (stu.getName() + stu.getCity() + stu.getRoll()).compareTo((stu1.getName() + stu1.getCity() + stu1.getRoll()));

return sort;

}

它为我工作,但不是正确的方法.

如何以正确的方式编写此代码,请提出建议.

int sort = (stu.getName() + stu.getCity() + stu.getRoll()).compareTo((stu1.getName() + stu1.getCity() + stu1.getRoll()));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值