`

依据List内部对象的某字段进行排序的方法:Collections.sort()

    博客分类:
  • Java
 
阅读更多
http://www.iteye.com/topic/1128840
依据List内部对象的某字段进行排序的方法
List内部对象类IntString,test为测试用例类
用Collections.sort方法,实现对List的排序,需要重写Comparator方法
代码如下:
List里存放的实体
package org.iti.wxl.listobjectsort;

public class IntString {
	
	private Integer no;
	
	private String str;

	public Integer getNo() {
		return no;
	}

	public void setNo(Integer no) {
		this.no = no;
	}

	public String getStr() {
		return str;
	}

	public void setStr(String str) {
		this.str = str;
	}

	@Override
	public String toString() {
		return "IntString [" + (no != null ? "no=" + no + ", " : "")
				+ (str != null ? "str=" + str : "") + "]";
	}

}




package org.iti.wxl.listobjectsort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test {
	public static void main(String[] args) {
		List<IntString> islist = new ArrayList<IntString>();
		IntString is1 = new IntString();
		is1.setNo(1);
		is1.setStr("计091");

		IntString is3 = new IntString();
		is3.setNo(3);
		is3.setStr("计093");

		IntString is2 = new IntString();
		is2.setNo(2);
		is2.setStr("计092");

		islist.add(is1);
		islist.add(is3);
		islist.add(is2);
		
		System.out.println(islist);
		Collections.sort(islist, new MyComparator());
		System.out.println(islist);
	}
}

class MyComparator implements Comparator<Object> {
	@Override
	public int compare(Object o1, Object o2) {
		IntString iso1 = (IntString)o1;
		IntString iso2 = (IntString)o2;
		String str1 = iso1.getStr();
		String str2 = iso2.getStr();
		return str1.compareTo(str2);
//		Integer no1 = iso1.getNo();
//		Integer no2 = iso2.getNo();
//		if(no1 > no2){
//			return 1;
//		}else if(no1 < no2){
//			return -1;
//		}else{
//			return 0;
//		}
	}

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics