依据List内部对象的某字段进行排序的方法
上一篇 /
下一篇 2013-03-21 11:37:35
/ 个人分类:其他
依据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);
-
-
-
-
-
-
-
-
-
- }
-
- }
如果是String类型的数据比较大小,Comparator方法里用str1.compareTo(str2) 方法,如果是数值比较大小,则用<,=,>比较,>返回1,=返回0,<返回-1。
收藏
举报
TAG: