java中arraylist的排序_java中arraylist对象排序程序

文章介绍了关于在java中的arraylist的数组对象进行排序,有需要使用此实例的朋友可以参考一下本文章。

 代码如下复制代码

import java.util.ArrayList;

import java.util.Collection;

import java.util.Collections;

import java.util.Comparator;

public class SortTwo implements Comparator {

//排序字段

private String sort1;

//排序方式

private int state;

public SortTwo(int state){

this.state=state;

}

public SortTwo(){

}

public int SortUp(Object o1,Object o2){

Student stu=(Student) o1;

Student stu1=(Student) o2;

if(sort1.equals("name")){

if(stu.getName().compareTo(stu1.getName())>1){

return 1;

} else if(stu.getName().compareTo(stu1.getName())<1){

return -1;

}else{

return 0;

}

}

if(sort1.equals("age")){

if(stu.getAge().compareTo(stu1.getAge())>1){

return 1;

} else if(stu.getAge().compareTo(stu1.getAge())<1){

return -1;

}else{

return 0;

}

}

return 0;

}

public int SortDOWN(Object o1,Object o2){

Student stu=(Student) o1;

Student stu1=(Student) o2;

if(sort1.equals("name")){

if(stu.getName().compareTo(stu1.getName())>1){

return -1;

} else if(stu.getName().compareTo(stu1.getName())<1){

return 1;

}else{

return 0;

}

}

if(sort1.equals("age")){

if(stu.getAge().compareTo(stu1.getAge())>1){

return -1;

} else if(stu.getAge().compareTo(stu1.getAge())<1){

return 1;

}else{

return 0;

}

}

return 0;

}

public int compare(Object o1, Object o2) {

if(this.state==1){

return SortUp(o1, o2);

}else{

return SortDOWN(o1, o2);

}

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Student stu=new Student();

stu.setName("123");

stu.setAge("12");

Student stu1=new Student();

stu1.setName("234");

stu1.setAge("23");

ArrayListlist=new ArrayList();

list.add(stu);

list.add(stu1);

SortTwo t=new SortTwo(1);

t.sort1="age";

Collections.sort(list,t);

for(Student st : list){

System.out.println(st.getName() "   " st.getAge());

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值