对集合中的对象的属性进行排序
2016-04-21 14:28
281 查看
用Collections中的sort方法排序。
Collections中的sort方法有两个:
//根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口
public static <T extends Comparable<? super T>> void sort(List<T> list)
//根据指定比较器产生的顺序对指定列表进行排序。此列表内的所有元素都必须可使用指定比较器相互比较
pubic static <T extends Comparable<? super T>> void sort(List<T> list,Comparator<? super T> c)
如对List<String> list中的字符串排序的话:
public class SortList {
private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) {
List<String> dates = new ArrayList<String>();
dates.add("2014-10-02");
dates.add("2013-12-01");
dates.add("2014-11-02");
dates.add("2014-01-05");
Collections.sort(dates, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Date d1 = null, d2 = null;
try {
d1 = df.parse(o1);
} catch (ParseException e) {
e.printStackTrace();
}
try {
d2 = df.parse(o2);
} catch (ParseException e) {
e.printStackTrace();
}
if(null == d1 || null == d2) {
return 0;
}
return d1.compareTo(d2);
}
});
System.out.println(dates);
}
}
Collections中的sort方法有两个:
//根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口
public static <T extends Comparable<? super T>> void sort(List<T> list)
//根据指定比较器产生的顺序对指定列表进行排序。此列表内的所有元素都必须可使用指定比较器相互比较
pubic static <T extends Comparable<? super T>> void sort(List<T> list,Comparator<? super T> c)
如对List<String> list中的字符串排序的话:
public class SortList {
private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) {
List<String> dates = new ArrayList<String>();
dates.add("2014-10-02");
dates.add("2013-12-01");
dates.add("2014-11-02");
dates.add("2014-01-05");
Collections.sort(dates, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Date d1 = null, d2 = null;
try {
d1 = df.parse(o1);
} catch (ParseException e) {
e.printStackTrace();
}
try {
d2 = df.parse(o2);
} catch (ParseException e) {
e.printStackTrace();
}
if(null == d1 || null == d2) {
return 0;
}
return d1.compareTo(d2);
}
});
System.out.println(dates);
}
}