欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java ArrayList集合中的某个对象属性进行排序的实现代码

程序员文章站 2024-03-13 13:45:15
开发中有时候需要自己封装分页排序时,list如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教。 1.student的bean如下:...

开发中有时候需要自己封装分页排序时,list如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教。

1.student的bean如下:

public class student {
	private int age;
	
	private string name;
	
	private string weight;
	public string getweight() {
		return weight;
	}
	public void setweight(string weight) {
		this.weight = weight;
	}
	public int getage() {
		return age;
	}
	public void setage(int age) {
		this.age = age;
	}
	public string getname() {
		return name;
	}
	public void setname(string name) {
		this.name = name;
	}
}

2.按照list中对象的int类型属性进行排序

 /**
 * 按照list中的某个int类型的属性进行排序
 * @param list
 */
@suppresswarnings("unchecked")
public static void sortintmethod(list list){
  collections.sort(list, new comparator(){
		@override
		public int compare(object o1, object o2) {
			student stu1=(student)o1;
			student stu2=(student)o2;
			if(stu1.getage()>stu2.getage()){
				return 1;
			}else if(stu1.getage()==stu2.getage()){
				return 0;
			}else{
				return -1;
			}
		}	  	
  });
  system.out.println("/////////////排序之后///////////////");
  for(int i=0;i<list.size();i++){
  	student st=(student)list.get(i);
  	system.out.println("st.age="+st.getage()+",st.name="+st.getname());
  }
}

3.按照list中对象的string类型的属性进行排序

1)方法一:

 /**
 * 按照list中的某个string类型的属性进行排序
 * @param list
 */
@suppresswarnings("unchecked")
public static void sortstringmethod(list list){
  collections.sort(list, new comparator(){
		@override
		public int compare(object o1, object o2) {
			student stu1=(student)o1;
			student stu2=(student)o2;
			return stu1.getname().compareto(stu2.getname());
		}	  	
  });
  system.out.println("/////////////排序之后///////////////");
  for(int i=0;i<list.size();i++){
  	student st=(student)list.get(i);
  	system.out.println("st.age="+st.getage()+",st.name="+st.getname());
  }
}

2)方法二:
使用java.text.rulebasedcollator来实现,用来执行区分语言环境的string 比较:

/**
	 * 按照list中的某个string类型的属性进行排序
	 * @param list
	 */
	@suppresswarnings("unchecked")
	public static void sortbyrulebasedcollator(list list){
		collections.sort(list, new comparator(){
			@override
			public int compare(object o1, object o2) {
			  return ((java.text.rulebasedcollator)java.text.collator.getinstance(java.util.locale.china)).compare(((student)o1).getname(), ((student)o2).getname());
			}		
		});
		system.out.println("/////////////排序之后///////////////");
	  for(int i=0;i<list.size();i++){
	  	student st=(student)list.get(i);
	  	system.out.println("st.age="+st.getage()+",st.name="+st.getname());
	  }
	}

4.测试排序的方法

    @suppresswarnings("unchecked")
public static void main(string[] args) {

	arraylist list=new arraylist();
	student t1=new student();
	t1.setage(35);
	t1.setname("wanglei");
	list.add(t1);
	
	student t2=new student();
	t2.setage(4);
	t2.setname("lisi");
	list.add(t2);
	
	student t3=new student();
	t3.setage(56);
	t3.setname("zhonghua");
	list.add(t3);
	
	student t4=new student();
	t4.setage(39);
	t4.setname("waanglei");
	list.add(t4);
	system.out.println("/////////////排序之前///////////////");
	for(int i=0;i<list.size();i++){
  	student st=(student)list.get(i);
  	system.out.println("st.age="+st.getage()+",st.name="+st.getname());
  }
        //按照list中的某个int类型的属性进行排序
	sortintmethod(list);
	//按照list中的某个string类型的属性进行排序
	sortstringmethod(list);	
}

5.结果

java ArrayList集合中的某个对象属性进行排序的实现代码