文档章节

list根据对象进行排序

刘梓航
 刘梓航
发布于 2014/10/20 11:32
字数 195
阅读 10
收藏 0
package com.hna.hka.mfm.gbs.car.uti;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;

import com.sun.org.apache.xpath.internal.operations.Number;

/**
 * @author jardot
 * @version 1.0 通用排序
 */
public class SortList<E> {
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public void Sort(List<E> list, final String method, final String sort) {
        Collections.sort(list, new Comparator() {
            @Override
            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);
                    
                    String aValue =  m1.invoke(((E) a), null).toString().trim()!=null?m1.invoke(((E) a), null).toString().trim():"0";
                    String bValue =  m1.invoke(((E) b), null).toString().trim()!=null?m1.invoke(((E) b), null).toString().trim():"0";
                    
                    
                    int aIntValue = (int)(Double.parseDouble(aValue)*100);
                    int bIntValue = (int)(Double.parseDouble(bValue)*100);
                    
                    if (sort != null && "desc".equals(sort))
                    {// 倒序
                        /*ret = m2.invoke(((E) b), null).toString()
                                .compareTo(m1.invoke(((E) a), null).toString());*/
                        //ret = aInt - bInt;
                        ret =  bIntValue -  aIntValue;
                    }else{
                        // 正序
                        /*ret = m1.invoke(((E) a), null).toString()
                                .compareTo(m2.invoke(((E) b), null).toString());*/
                        ret = aIntValue -  bIntValue;;
                    }
                } catch (NoSuchMethodException ne) {
                    System.out.println(ne);
                } catch (IllegalAccessException ie) {
                    System.out.println(ie);
                } catch (InvocationTargetException it) {
                    System.out.println(it);
                }
                return ret;
            }
        });
    }
}


© 著作权归作者所有

刘梓航
粉丝 12
博文 57
码字总数 11448
作品 0
天津
程序员
私信 提问
java集合框架总结(七)

一、Collections 简介 Collections 是一个操作 Set、List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合...

hapier
2016/09/09
39
0
【转载】C#中使用OrderBy和ThenBy等方法对List集合进行排序

在C#的List操作中,针对List对象集合的排序我们可以使用OrderBy、OrderByDescending、ThenBy、ThenByDescending等方法按照特定的对象属性进行排序,其中Orderby表示按指定的第一个属性升序排...

江湖逍遥
05/12
0
0
【JavaSE(十一)】Java集合框架(下)

原文地址:https://www.cloudcrossing.xyz/post/43/ 1 Map集合 1.1 Map集合概述 Map是将键和值一 一映射的对象,可以通过键来获取值。一个映射不能包含重复的键;每个键最多只能映射到一个值...

苍云横渡
2018/05/25
0
0
第8篇 Java中的集合(Set)

Java 集合的 Set 接口 Set类型与List类型的区别 Set: 无序、不可重复 List: 有序、可重复 1、HashSet HashSet的存储结构:HashMap 特点: HashSet通过比较存放的哈希码(hashCode)来确定对...

Zero_Yi
2018/07/17
0
0
集合(四)Map

Collection集合和Map集合的区别: a: Map集合属于双列集合 , Collection属于单列集合 b: Map集合键是唯一性的, 而Collection集合中的Set集合可以保证元素的唯一性 c: Map集合的数据结构只和键...

centrald
2016/01/29
119
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
8
0
多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
昨天
3
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
2
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部