List排序通用方法
2015-01-26 17:26
246 查看
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortList<E>{
public static void main(String[] args) {
Student zlj = new Student("丁晓宇", 21);
Student dxy = new Student("赵四", 22);
Student cjc = new Student("张三", 11);
Student lgc = new Student("刘武", 11);
List<Student> studentList = new ArrayList<Student>();
studentList.add(zlj);
studentList.add(dxy);
studentList.add(cjc);
studentList.add(lgc);
SortList1<Student> sort = new SortList1<Student>();
sort.Sort(studentList, "getAge", "asc");
for (Student student : studentList) {
System.out.println(student.getName() + ": " + student.getAge());
}
}
}
class SortList1<E> {
@SuppressWarnings("unchecked")
public void Sort(List<E> list, final String method, final String sort) {
Collections.sort(list, new Comparator() {
public int compare(Object a, Object b) {
int ret = 0;
try{
Method m1 = ((E)a).getClass().getMethod(method, null);
Method m2 = ((E)b).getClass().getMethod(method, null);
if(sort != null && "desc".equals(sort))//倒序
ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString());
else//正序
ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());
}catch(NoSuchMethodException ne){
System.out.println(ne);
}catch(IllegalAccessException ie){
System.out.println(ie);
}catch(InvocationTargetException it){
System.out.println(it);
}
return ret;
}
});
}
}
class Student1 {
private int age;
private String name;
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;
}
public Student1(String name, int age) {
this.age = age;
this.name = name;
}
}
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortList<E>{
public static void main(String[] args) {
Student zlj = new Student("丁晓宇", 21);
Student dxy = new Student("赵四", 22);
Student cjc = new Student("张三", 11);
Student lgc = new Student("刘武", 11);
List<Student> studentList = new ArrayList<Student>();
studentList.add(zlj);
studentList.add(dxy);
studentList.add(cjc);
studentList.add(lgc);
SortList1<Student> sort = new SortList1<Student>();
sort.Sort(studentList, "getAge", "asc");
for (Student student : studentList) {
System.out.println(student.getName() + ": " + student.getAge());
}
}
}
class SortList1<E> {
@SuppressWarnings("unchecked")
public void Sort(List<E> list, final String method, final String sort) {
Collections.sort(list, new Comparator() {
public int compare(Object a, Object b) {
int ret = 0;
try{
Method m1 = ((E)a).getClass().getMethod(method, null);
Method m2 = ((E)b).getClass().getMethod(method, null);
if(sort != null && "desc".equals(sort))//倒序
ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString());
else//正序
ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());
}catch(NoSuchMethodException ne){
System.out.println(ne);
}catch(IllegalAccessException ie){
System.out.println(ie);
}catch(InvocationTargetException it){
System.out.println(it);
}
return ret;
}
});
}
}
class Student1 {
private int age;
private String name;
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;
}
public Student1(String name, int age) {
this.age = age;
this.name = name;
}
}
相关文章推荐
- List对象排序通用方法
- List对象排序通用方法(转)
- List对象排序的通用方法
- java中List对象排序通用方法
- Java_List对象排序通用方法
- List对象排序的通用方法
- List对象排序通用方法
- List对象排序通用方法
- java中List对象排序通用方法
- List对象排序通用方法
- List对象排序通用方法
- java中List对象排序通用方法
- 快速排序List的通用方法
- List对象排序通用方法
- java中List对象排序的通用方法
- java中List对象排序通用方法
- List对象排序通用方法
- java中LIST集合排序通用方法
- List对象排序的通用方法
- List对象排序通用方法