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");   
ArrayList<Student>list=new ArrayList<Student>();   
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());   
}   
}   
  
}   

时间: 2024-10-28 13:26:42

java中arraylist对象排序程序的相关文章

java中ArrayList 、LinkList的区别分析_java

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.      2.对于随机访问get和set,ArrayList优于LinkedList,因为ArrayList可以随机定位,而LinkedList要移动指针一步一步的移动到节点处.(参考数组与链表来思考)     3.对于新增和删除操作add和remove,LinedList比较占优势,只需要对指针进行修改即可,而ArrayList要移动数据来填补被删除的对象的空间. ArrayList和LinkedL

java中List对象排序通用方法_java

本文实例讲述了java中List对象排序通用方法.分享给大家供大家参考.具体分析如下: 在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询.如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能. 只要把第一次查出来的结果存放在session中,就可以对list重新排序了.一般对list排序可以使用Collections.sort(list),但如果list中包含是一个对象的话,这种方法还是行不通的.那要怎么排序

Java中ArrayList类的使用方法_java

Java中ArrayList类的用法 1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..

Java中的对象和对象引用实例浅析

  本文实例讲述了Java中的对象和对象引用.分享给大家供大家参考.具体分析如下: 在Java中,有一组名词经常一起出现,它们就是"对象和对象引用",很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起了解一下对象和对象引用之间的区别和联系. 1.何谓对象? 在Java中有一句比较流行的话,叫做"万物皆对象",这是Java语言设计之初的理念之一.要理解什么是对象,需要跟类一起结合起来理解.下面这段话引自<Jav

JS自定义对象实现Java中Map对象功能的方法

这篇文章主要介绍了JS自定义对象实现Java中Map对象功能的方法,可实现类似Java中Map对象增删改查等功能,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JS自定义对象实现Java中Map对象功能的方法.分享给大家供大家参考.具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象. 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容! 这里Key

Java中ArrayList的使用方法简单介绍_java

ArrayList没有封装好的去重方法,比如对于一个[2, 5, 2, 3, 2, 4]的ArrayList,我要去除其中的重复的元素, 我也不想把语句也这么长,也不想用for循环的方法去重,那么可以先考虑把ArrayList转化为一个临时的HashSet,再把这个临时的HashSet转化回ArrayList,因为HashSet里面的元素是不可重复的嘛!至于什么是ArrayList与HashSet,在<详解java中的Collections类>已经说得很清楚了,这里不再赘述.  你可以这样写:

java中Message对象有什么用

问题描述 java中Message对象有什么用 java中Message对象有什么用 是用来显示对话框的消息吗,还是有很多其他作用 解决方案 不是,是jms服务,用于java程序的通讯,而不是显示消息给人看,不是人机交互. 参考:http://roadytulip.iteye.com/blog/661279 解决方案二: 主要是一种程序间的通信机制.

JS自定义对象实现Java中Map对象功能的方法_javascript技巧

本文实例讲述了JS自定义对象实现Java中Map对象功能的方法.分享给大家供大家参考.具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象. 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容!   这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作. 使用很简单,我先把工具类给大家看下: 复制代码 代码如下: /**  *

java中匿名对象和匿名类都有关键词new吧

问题描述 java中匿名对象和匿名类都有关键词new吧 java中匿名对象和匿名类都有关键词new吧 那他们应该怎么区分呢 是不是匿名类就没有方法体 匿名对象就有方法体呢 具体是如何区分的呢 解决方案 首先,匿名对象是没有变量接收的对象,例如 new Date(); 这就是定义了一个Date 类型的匿名对象,之所以叫匿名,是因为它没有变量接收,不能调用对象的.操作. 其次,匿名类是没有显示定义类文件的类,但它不一定是匿名对象,例如: Out anonyInter=new Out(){// 获取匿