//通用排序
public class SortList<E> {
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;
}
});
}
}
调用:
SortList<TbNews> sortList = new SortList<TbNews>();
// 排序 list为集合,getNdate根据哪个字段排序,desc排序方式
sortList.Sort(list, "getNdate", "desc");
分享到:
相关推荐
24<br><br>0051 变量的作用域 25<br><br>2.5 其他 26<br><br>0052 有效使用this对象 26<br><br>0053 如何声明变量 26<br><br>0054 如何声明相同类型的多个变量 26<br><br>0055 利用Object变量传递参数 ...
List<object> list = new List<object>(); foreach (DataRow dr in dt.Rows) { list.Add(dr[columnName]); } return list; } ``` 这种方法简化了类型转换的过程,直接返回该列的所有值,存储为`List<object>...
由于Java的虚拟机不支持泛型,所以在编译后,所有的泛型信息都会被擦除,替换为具体的类型,如`ArrayList<String>`会被转化为`ArrayList<Object>`。这就意味着在运行时无法通过反射获取到泛型信息,因此泛型主要在...
在.NET框架中,`System.Collections.Generic.List<T>`是数据列表的一种常见实现,它是一个动态大小的数组,可以存储任何类型的对象,只要这些对象共享相同的基类(通常是`System.Object`)或接口。泛型版本的`List<T...
首先,标准库中的`<algorithm>`头文件包含了各种通用的算法,例如排序(sort)、查找(find)、拷贝(copy)等,这些算法适用于不同的容器,如vector、list、set等。`<allocators>`头文件则涉及到内存分配策略,如...
Collections.sort(entities, new GenericComparator<>("name")); ``` 5. **扩展通用比较器** 如果你需要更复杂的比较逻辑,比如基于多个属性或自定义规则,可以扩展通用比较器。例如,可以添加更多的构造函数来...
这里我们将探讨如何对包含自定义对象的`List`进行通用排序,并减少冗余代码。 首先,Java的`Collections.sort()`方法是用于对`List`进行排序的便捷工具,但默认它只能处理实现了`Comparable`接口的元素。对于自定义...
STL的13个主要头文件包括:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>,这些文件包含了STL的所有核心组件。例如,`std::...
这是一款轻量级的MyBatis插件,在GitHub上发布的有打好的jar包,... List<UserInfo> list = userMapper.baseSelectList(userInfo); if(list != null && list.size() > 0){ return list.get(0); } return null; }
4. **排序**:允许用户自定义排序规则,可以提供`List<T> findByCriteria(Criteria criteria, Order[] orders)`,传入Order对象来控制排序。 5. **事务管理**:为了确保数据的一致性,通用DAO应该包含事务管理。...
private List<Object> elements = new ArrayList<>(); @Override public void add(Object element) { elements.add(element); } } ``` ### 4. 通配符 (Wildcards) #### 什么是通配符 通配符是一种特殊的类型...
### List对象排序通用方法 #### 一、背景与需求 在进行软件开发的过程中,经常会遇到从数据库中查询出一系列的数据并存储为`List`对象的情况。这些数据在后续的处理中可能需要根据不同的字段进行排序。传统的做法...
Page<User> page = new Page<>(1, 10); List<User> userList = userMapper.selectPage(page, Wrappers.lambdaQuery(User.class).eq(User::getName, "John")); ``` 3. **前端与后端的交互** 前端通常通过Ajax向...
这样,当我们有一个`Person`对象的集合,并调用`List<Person>.Sort()`方法时,C#运行时会自动使用`CompareTo`方法对这些对象进行排序。 在`ConsoleApplication12`这个示例项目中,可能包含以下代码: ```csharp ...
在C++中,模板类类似于上述描述的`List<T>`,它定义了一个通用的类结构,可以用于各种数据类型。`T`在这里是一个类型参数,代表用户在实例化模板时将要替换的具体类型。例如,`List<int>`表示一个处理整数的列表,而...
List<MyObject> list = ...; // 初始化并填充list Collections.sort(list); // 或者 Collections.sort(list, comparator); ``` - **Arrays.sort()**:这个方法用于数组排序,包括原始类型数组和对象数组。对象数组...
这里介绍的是一种利用Java反射机制实现的通用排序方法。 首先,反射机制允许我们在运行时获取类的信息,包括类的字段(成员变量)和方法。通过`Class.getDeclaredField()`方法,我们可以获取到指定名称的字段。由于...
public ResponseEntity<List<User>> getUsers(@Validated RequestObject request) { validateRequestParams(request); try { List<User> users = userService.getAllUsers(); return buildSuccessResponse...
* 通用排序方法 * @param list 需要排序的List * @param method 对象属性的获取方法名称 * @param sort 排序方式:desc(降序)或asc(升序) */ @SuppressWarnings({"unchecked", "rawtypes"}) public void ...
除了无法访问它的大小和不能使用索引来获得它的子变量:集合可以看作只能由<#list...>指令使用的受限sequences。 5、 方法:通过传递的参数进行计算,以新对象返回结果 方法变量通常是基于给出的参数计算值在数据...