- 浏览: 7857144 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
在日常工作中经常用到需要对java对象集合或者Map集合中的某个属性做排序,这个需求可以利用Apache的commons-beanutils和commons-collections包来实现,主要实现方式如下:
public static <T> void sort(List<T> list, String property, boolean asc) {
Comparator<?> comparator = ComparableComparator.getInstance();
comparator = ComparatorUtils.nullLowComparator(comparator);
if (!asc) {
comparator = ComparatorUtils.reversedComparator(comparator);
}
Collections.sort(list, new BeanComparator(property, comparator));
}
下面看看一个具体实现例子,其中有按对象属性排序和Map某个key排序
首先是一个Java对象
package my.commonsstudy.beanutils;
public class User {
private String username;
private String password;
private String email;
public User(String username, String password, String email) {
this.username = username;
this.password = password;
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return this.username + ", " + this.password + ", " + this.email;
}
}
排序测试类
package my.commonsstudy.beanutils;
import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.ComparatorUtils;
import org.apache.commons.collections.comparators.ComparableComparator;
import java.util.*;
public class ComparatorTest {
public static void main(String[] args) throws Exception {
test1();
test2();
}
private static void test1() {
List<Map<String, Object>> users = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 5; i++) {
Map<String, Object> user = new LinkedHashMap<String, Object>();
user.put("username", "user_" + i);
user.put("password", "passwd_" + i);
user.put("email", "user_" + i + "@localhost");
users.add(user);
}
System.out.println(users);
sort(users, "username", false);
System.out.println(users);
sort(users, "username", true);
System.out.println(users);
}
private static void test2() {
List<User> users = new ArrayList<User>();
for (int i = 0; i < 5; i++) {
users.add(new User("user_" + i, "passwd_" + i, "user_" + i + "@localhost"));
}
System.out.println(users);
sort(users, "username", false);
System.out.println(users);
sort(users, "username", true);
System.out.println(users);
}
public static <T> void sort(List<T> list, String property, boolean asc) {
Comparator<?> comparator = ComparableComparator.getInstance();
comparator = ComparatorUtils.nullLowComparator(comparator);
if (!asc) {
comparator = ComparatorUtils.reversedComparator(comparator);
}
Collections.sort(list, new BeanComparator(property, comparator));
}
}
public static <T> void sort(List<T> list, String property, boolean asc) {
Comparator<?> comparator = ComparableComparator.getInstance();
comparator = ComparatorUtils.nullLowComparator(comparator);
if (!asc) {
comparator = ComparatorUtils.reversedComparator(comparator);
}
Collections.sort(list, new BeanComparator(property, comparator));
}
下面看看一个具体实现例子,其中有按对象属性排序和Map某个key排序
首先是一个Java对象
package my.commonsstudy.beanutils;
public class User {
private String username;
private String password;
private String email;
public User(String username, String password, String email) {
this.username = username;
this.password = password;
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return this.username + ", " + this.password + ", " + this.email;
}
}
排序测试类
package my.commonsstudy.beanutils;
import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.ComparatorUtils;
import org.apache.commons.collections.comparators.ComparableComparator;
import java.util.*;
public class ComparatorTest {
public static void main(String[] args) throws Exception {
test1();
test2();
}
private static void test1() {
List<Map<String, Object>> users = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 5; i++) {
Map<String, Object> user = new LinkedHashMap<String, Object>();
user.put("username", "user_" + i);
user.put("password", "passwd_" + i);
user.put("email", "user_" + i + "@localhost");
users.add(user);
}
System.out.println(users);
sort(users, "username", false);
System.out.println(users);
sort(users, "username", true);
System.out.println(users);
}
private static void test2() {
List<User> users = new ArrayList<User>();
for (int i = 0; i < 5; i++) {
users.add(new User("user_" + i, "passwd_" + i, "user_" + i + "@localhost"));
}
System.out.println(users);
sort(users, "username", false);
System.out.println(users);
sort(users, "username", true);
System.out.println(users);
}
public static <T> void sort(List<T> list, String property, boolean asc) {
Comparator<?> comparator = ComparableComparator.getInstance();
comparator = ComparatorUtils.nullLowComparator(comparator);
if (!asc) {
comparator = ComparatorUtils.reversedComparator(comparator);
}
Collections.sort(list, new BeanComparator(property, comparator));
}
}
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1483方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 1967前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3416info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2187import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 449https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 632public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 556https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 625https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 399https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 4651 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3043微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 557https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1780什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 913本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1266原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 809public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 621在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 885-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 711一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1855介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
常用jar包下载,包括commons-beanutils-1.9.3、commons-collections-3.2.2、commons-collections4-4.1
解决办法是把commons-beanutils中的org/apache/commons/collections删除,这里上传一个改好可以直接使用的。
commons-beanutils-1.9.2和commons.collections-3.2.1
这是两个jar包,包括了commons-beanutils-1.9.2和commons.collections-3.2.1,这两个包是互相配合的。 设0积分,方便下载。
json相关jar包(不使用springmvc开发时)。其中包含(commons-beanutils.jar、commons-collections-3.1.jar、commons-lang-2.6.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.3-jdk15.jar)
commons-beanutils.jar commons-collections-3.1.jar commons-pool-1.2.jar 集合
commons-beanutils-1.8.0 jar包: 1.commons-beanutils-1.8.0.jar 2.commons-beanutils-1.8.0-javadoc.jar ...4.commons-beanutils-bean-collections-1.8.0.jar 5.commons-beanutils-core-1.8.0.jar
JSF开发所必需包:花了很长时间才收集好,很费时,现已收集好,何不分享给大家,让大家节省时间做点有意义的事情呢?呵呵。。。已在附件供大家下载,若是你所需要的东西,那就请投个票、说句鼓励的话,我就满足了。 ...
commons-collections-3.2.1-bin.zip commons-digester-1.8.zip commons-discovery-0.4.zip commons-email-1.1-bin.zip commons-fileupload-1.2.1-bin.zip commons-io-1.4-bin.zip commons-lang-2.4-bin.zip commons-...
commons-beanutils和commons-collections-3.1的jar包
Json开发所必需的jar包,以及关联的所以jar包。 commons-beanutils.jar commons-collections-3.2.1.jar commons-lang-2.5.jar commons-logging-1.1.jar ezmorph-1.0.6.jar json-lib-2.3-jdk15.jar
commons-beanutils-1.8.2.jar,commons-codec-1.4.jar,commons-collections-3.2.1.jar,commons-dbcp-1.2.2.jar,commons-digester-2.0.jar,commons-fileupload-1.2.1.jar,commons-httpclient.jar,commons-io-...
配置服务端所需要的jar文件,包括commons-logging commons-beanutils commons-lang ezmorph json-lib-2.4-jdk15 commons-collections-3.2.1。
Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar和api文档,以及其依赖的commons-logging-1.2.jar包
commons-beanutils-1.8.3是配置服务端打开工程所需要的一些相关的jar文件包,分别是:commons-beanutils-1.8.3.jarcommons-collections-3.2.1.jarcommons-lang-2.6.jarcommons-logging-1.2.jarezmorph-1.0.6.jarjson...
commons-beanutils-bean-collections.jar commons-beanutils-bean-collections.jar
commons-beanutils-1.9.3 和commons-beanutils-1.9.3源码 包含 commons-collections4-4.2.jar commons-logging-1.2.jar
在web项目中经常会用到json数据(如:struts2处理请求返回json数据给jsp解析),因此,JSONObject对象是必备的,...commons-collections-3.2.1.jar commons-lang-3.7.jar commons-logging-1.1.1.jar ezmorph-1.0.6.jar
commons-beanutils-1.8.3.jar commons-codec-1.7.jar commons-collections-3.2.1.jar