当前位置: 移动技术网 > IT编程>开发语言>Java > java ArrayList集合中的某个对象属性进行排序的实现代码

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

2019年07月22日  | 移动技术网IT编程  | 我要评论
开发中有时候需要自己封装分页排序时,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.结果

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网