public class SortUtils<T>{ public void sort(List<T> list,String keyName,final String sortname) throws Exception{ Set<String> idset = new HashSet<String>(); for(T t:list){ Method method = t.getClass().getMethod(keyName); System.out.println(method.invoke(t)); idset.add((String)method.invoke(t)); } //可以做一些你想要的操作 Collections.sort(list, new Comparator<T>() { @Override public int compare(T o1, T o2) { Method method1; try { method1 = o1.getClass().getMethod(sortname); Method method2 = o2.getClass().getMethod(sortname); String name1 = (String)method1.invoke(o1); String name2 = (String)method2.invoke(o2); return name1.compareTo(name2); } catch (Exception e) { e.printStackTrace(); return 0; } } }); } }
实体类
public class User { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
调用
import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) throws Exception { SortUtils<User> usersort = new SortUtils<User>(); List<User> list = new ArrayList<User>(); for(int i=5;i>0;i--){ User user =new User(); user.setId(String.valueOf(i)); user.setName(String.valueOf(i)+"name"); list.add(user); } usersort.sort(list,"getId","getId"); for(User user:list){ System.out.println(user.getId()); } } }
相关推荐
利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL...
插入多条数据,即泛型集合(集合元素为业务实体对象) public string Insert(CalendarNotesModel model, object objTrans) 在指定事务控制中插入单条数据 public string Insert(List<CalendarNotesModel> list, ...
实例054 使用sort方法对数组进行排序 67 实例055 反转数组中元素的顺序 68 3.4 常用集合的使用 69 实例056 用动态数组保存学生姓名 69 实例057 用List集合传递学生信息 70 实例058 用TreeSet生成不重复自动排序 随机...