好消息,百度网盘专业搜索网站上线了
打开瞧一瞧:
http://bitar.cn
package com.collection;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SingleSort<E> {
/**
*
* @param list 要排序的集合
* @param method 要排序的实体的属性所对应的get方法
* @param sort desc 为正序
*/
public void Sort(List<E> list, final String method, final String sort) {
// 用内部类实现排序
Collections.sort(list, new Comparator<E>() {
public int compare(E a, E b) {
int ret = 0;
try {
// 获取m1的方法名
Method m1 = ((E)a).getClass().getMethod(method, new Class[]{});
// 获取m2的方法名
Method m2 = ((E)b).getClass().getMethod(method, new Class[]{});
if (sort != null && "desc".equals(sort)) {
ret = m2.invoke(((E)b), new Object[]{}).toString().compareTo(m1.invoke(((E)a),new Object[]{}).toString());
} else {
// 正序排序
ret = m1.invoke(((E)a), new Object[]{}).toString().compareTo(m2.invoke(((E)b), new Object[]{}).toString());
}
} catch (Exception ne) {
ne.printStackTrace();
}
return ret;
}
});
}
public static void main(String[] args) {
List<JavaBeanS> list = new ArrayList<JavaBeanS>();
JavaBeanS bean = new JavaBeanS(2,"张三","b");
list.add(bean);
bean = new JavaBeanS(1,"李四","d");
list.add(bean);
bean = new JavaBeanS(3,"王二","c");
list.add(bean);
bean = new JavaBeanS(4,"钱七","a");
list.add(bean);
SingleSort<JavaBeanS> sorter = new SingleSort<JavaBeanS>();
sorter.Sort(list, "getAddress", "desc");
for (JavaBeanS obj : list) {
System.out.println(obj.getId()+":"+obj.getName()+":"+obj.getAddress());
}
}
}
class JavaBeanS{
private String name;
private String address;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public JavaBeanS(int id,String name, String address) {
super();
this.name = name;
this.address = address;
this.id = id;
}
}
分享到:
相关推荐
`TreeMap`是Java集合框架中的一个实现,它继承自`AbstractMap`并实现了`SortedMap`接口。`TreeMap`内部使用红黑树数据结构,可以保证插入的元素按照指定的比较器(默认是自然顺序,即ASCII码顺序)自动排序。在本例...
Java8从List集合中取出某一属性的值的集合案例 Java8从List集合中取出某一属性的值的集合案例是一个非常有价值的知识点,主要介绍了如何使用Java8的流式编程从List集合中取出某一属性的值的集合。下面将详细介绍这...
本文将通过一个具体的Java代码示例来介绍如何实现日期的合并功能。 #### 二、关键类与方法解析 本案例中涉及的主要类包括`TimeoffDateDTO`和`TimeoffDateComparator`。 ##### 2.1 `TimeoffDateDTO` 类 该类定义...
最后,`CompareField.java`可能是实现对象字段比较的类,例如在排序或筛选过程中比较两个联系人对象的特定字段。这可能涉及到Comparator接口的实现,允许我们自定义对象的比较逻辑。 在后端开发中,这些基础概念和...
为了实现这一功能,代码内部定义了另一个函数`F_NLSSORT`,用于获取单个汉字的拼音编码。 #### `F_NLSSORT`函数详解 `F_NLSSORT`函数的作用是返回指定字符根据特定排序规则的编码值。在这个场景下,使用的排序规则...
9. **sort()**或**sortBy()**: 对数据集进行排序,可以按照指定的字段和排序顺序进行。 10. **union()**: 将两个数据集合并为一个新的数据集,不考虑重复元素。 11. **intersection()**: 返回两个数据集的交集,即...
9. **集合排序与分页** Hibernate允许我们在集合映射中定义排序规则,使用`@OrderBy`注解指定排序字段和顺序。同时,通过Query对象的`setFirstResult`和`setMaxResults`方法可以实现分页查询。 10. **集合缓存** ...
Java 语言是面向对象编程的一种强大工具,拥有丰富的特性与概念。在 Java 词汇表中,我们可以找到许多关键概念,这些概念构成了 Java 编程的基础。以下是一些重要的 Java 知识点: 1. 抽象类(Abstract Class):...
- **对象状态 (State)**: 指的是对象当前的属性值集合。 - **封装 (Encapsulation)**: 将对象的状态和行为封装起来,只通过公开的方法来访问对象内部的数据,提高安全性。 #### 9. 方法与字段 - **实例字段 ...
在Java编程中,有时我们需要统计一个List集合中相同值出现的次数。这在处理数据集、分析重复项或进行数据清洗时非常常见。本篇文章将详细介绍如何通过Java实现这一功能,特别是利用Map数据结构来高效地计算List中...
- **核心集合接口**:Java集合框架主要包括以下几个核心接口: - `Collection`:所有集合类的根接口。 - `Set`:不允许重复元素的集合。 - `List`:有序的、可重复元素的集合。 - `Map`:键值对映射的集合。 - ...
- 获取单个字段:`hget(hashKey, field)` - 更新字段:`hset(hashKey, field, newValue)` - 删除字段:`hdel(hashKey, field)` - 删除整个哈希:`hdel(hashKey)` 4. **列表(List)操作** 列表支持在两端插入...
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 除了实现`Serializable`接口外,还可以使用`Externalizable`接口,它提供了更精细的控制,允许自定义序列化和反序列化的过程。 #### 14. 如在COLLECTION框架...
4. **集合框架**:Java 集合框架是存储和操作对象的主要工具,包括 List、Set 和 Map 接口,以及它们的实现类,如 ArrayList、LinkedList、HashSet、HashMap 等。这部分会介绍集合的操作、遍历、排序和并发访问。 5...
在执行批量查询时,可以通过构建包含单个参数和列表参数的`Map`对象来实现。 **示例**: ```java Map, Object> params = new HashMap(); params.put("id", 1L); params.put("ids", Arrays.asList(2L, 3L, 4L)); ...
- **基础知识:** Java集合框架提供了存储和操作对象的集合类,如List、Set和Map等。这些集合类根据数据结构的不同特性提供了不同的行为。例如,`ArrayList`提供快速的随机访问,而`LinkedList`则提供高效的插入和...
该类实现了`Comparable`接口和`Serializable`接口,以便于对联系人进行排序和序列化存储。 - **构造方法**: - 默认构造方法创建一个空的`Friend`对象。 - 带参数的构造方法允许初始化所有或部分字段。 - 复制...