文档章节

List排序的问题

lgscofield
 lgscofield
发布于 2015/06/26 13:58
字数 218
阅读 43
收藏 0
点赞 0
评论 0
1.对List进行排序可以通过这种方式,实现(implements) Comparable<T>接口
@Override
    public int compareTo( T  o)
    {
        if (null == o)
        {
            return -1;
        }

        RunningInstancesItemType instance0 = this.instanceInfo;
        RunningInstancesItemType instance1 = o.getInstanceInfo();

        if (null == instance0 || null == instance1)
        {
            return -1;
        }
        else
        {
            // 按运行时间排序
            String launchTime0 = this.getInstanceInfo().getLaunchTime();
            String launchTime1 = o.getInstanceInfo().getLaunchTime();
            if (!launchTime0.equals(launchTime1))
            {
                return launchTime1.compareTo(launchTime0);
            }
            else
            {
                // 如果运行时间相同,则按Id排序
                String instanceId0 = this.getInstanceInfo().getInstanceId();
                String instanceId1 = o.getInstanceInfo().getInstanceId();
                return instanceId0.compareTo(instanceId1);
            }
        }
    }

    @Override
    public boolean equals(Object obj)
    {
        boolean equals;

        if (null == obj)
        {
            equals = false;
        }
        else if (this == obj)
        {
            equals = true;
        }
        else if (this.getClass() != obj.getClass())
        {
            equals = false;
        }
        else
        {
            InstanceBean o = (InstanceBean)obj;
            RunningInstancesItemType instance1 = this.instanceInfo;
            RunningInstancesItemType instance2 = o.getInstanceInfo();

            if (null == instance1 || null == instance2)
            {
                equals = false;
            }
            else
            {
                if (null == instance1.getLaunchTime())
                {
                    equals = false;
                }
                else
                {
                    equals = instance1.getLaunchTime().equals(instance2.getLaunchTime());
                }
            }
        }

        return equals;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result
                + ((null == this.getInstanceInfo() || null == this.getInstanceInfo().getLaunchTime()) ?
                        0 : this.getInstanceInfo().getLaunchTime().hashCode());
        return result;
    }

2.也可以使用TreesSet实现
SortedSet<T> sortedSet = new TreeSet<T>();
List<T> instanceList;
sortedSet.add(***);//此处*为T的实例化
instanceList = new ArrayList<T>(sortedSet);

本文转载自:http://lgscofield.iteye.com/blog/1567385

共有 人打赏支持
lgscofield

lgscofield

粉丝 20
博文 105
码字总数 63036
作品 0
南京
架构师
排序——升序降序的使用

前言 在做项目的过程中,偶尔会用到对集合中数据进行升序降序的排列问题,问题不是很难,但有时处理起来非常浪费时间,于是今天就把排序问题稍微处理了下,整理成一个排序工具类——Compare...

奔跑的佩恩 ⋅ 2017/12/26 ⋅ 0

Java ArrayList的一个遍历问题

有个需求,调取的数据放在一个ArrayList里面,然后呢,在这个List里面找出元素的父子关系,然后要保证儿子紧跟着老爸之后这个顺序。 如上的需求,算法也实现了,但今天发现有漏掉一些元素没有...

蓝水晶飞机 ⋅ 2015/04/18 ⋅ 6

Freemarker中如何遍历List

Freemarker中如何遍历List摘要:在Freemarker应用中经常会遍历List获取需要的数据,并对需要的数据进行排序加工后呈现给用户。那么在Freemarker中如何遍历List,并对List中数据进行适当的排序...

oecp ⋅ 2011/05/18 ⋅ 0

利用比较接口实现List中的对象排序

2008年12月24日 多云 日本东京 今天修改了一个复杂的问题,问题的核心是在不同的条件下,要实现List中某些特定对象的优先处理,简单的说,就是在循环处理List中的对象时,对于某些满足组合条...

长平狐 ⋅ 2012/10/16 ⋅ 0

存放有数组的list排序

今天遇到一个小问题,就是把一个循环出来的数组放在一个list里面,然后排序输出,我第一个想到的是冒泡,选择,快速之类的,想想都觉得太麻烦,先拿出来,然后找到再放进去,这样的代码很臃肿...

死亡左轮 ⋅ 2016/11/07 ⋅ 0

freemarker 对null 的处理

freemarker对null的处理 无非就这几种 1 提供默认值 <#if mouse?> Mouse found <#else> 也可以直接${mouse?ifexists} <#if user.age??> //TO DO </#if> 2.忽略null值 假设前提:userName为n......

AnyLiem ⋅ 2016/03/05 ⋅ 0

Python嵌套列表去重

人生苦短 早用Python 这是工作中遇到的一个坑,首先看一下问题 列表嵌套了列表,并且有一个重复列表,现在要求将这个重复元素进行去重(重复是指嵌套的列表内两个元素都相同),并且保证元素...

_Apache ⋅ 2017/12/27 ⋅ 0

Python对列表中字典元素排序

阅读目录 问题起源 对列表中的字典元素排序 对json进行比较(忽略列表中字典的顺序) 回到顶部 问题起源 json对象a,b a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}'b = '{"ROAD": [{"name...

技术mix呢 ⋅ 2017/10/10 ⋅ 0

数据结构与算法-桶排序

数据结构与算法 3.2.7 桶排序(Buchket Sort) 如果我们有N个整数,范围从1到M(或从0到M-1)。我们留置一个数组,称之为Count,大小为M,并初始化为零。于是,Count有M个单元(或桶),开始他...

邪恶的小Y ⋅ 2016/06/06 ⋅ 1

python sort与sorted

问题起源 当item为string类型时,接受的报错信息: source_list = [ 5, 2, 3, 8, 6 ] 错误原因 sort是list的一个方法 ,是list数据类型的一个内置方法,也就是说,一个 list 对象 sourcelist...

analanxingde ⋅ 2017/11/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【elasticsearch】 随笔 Date datatype

一。时间类型的本质 首先json是没有时间类型的,对于es来说,时间类型的标示可以是下面三种情况 1.一个时间格式的字符串,如:"2014-11-27T08:05:32Z","2015-01-01" or "2015/01/01 12:10:3...

xiaomin0322 ⋅ 9分钟前 ⋅ 0

阿里云资源编排ROS使用教程

阿里云资源编排ROS详细内容: 阿里云资源编排ROS使用教程 资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、...

mcy0425 ⋅ 11分钟前 ⋅ 0

适配器设计模式

1、适配器模式 把一个类的接口变换成客户端所期待的另一种接口 使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 分为类的适配器模式和对象的适配器模式 2、类适配器模式 类的适配...

职业搬砖20年 ⋅ 16分钟前 ⋅ 0

npm操作报错 _stream_writable.js:61

有一天 不知道什么原因(估计和node的版本有关),无论你做什么npm的操作 都会报错/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:61 这时候只要执...

lilugirl ⋅ 19分钟前 ⋅ 0

Eclipse安装插件的几种方式

Eclipse魅力之一就是支持可扩展的插件,来丰富自身的功能,这种方式也是建立在开源思想之上的。具体使用什么方式去安装插件,要看我们拿到的是什么。 1. 拿到的是一串URL,如http://subclips...

GordonNemo ⋅ 22分钟前 ⋅ 0

div图片叠加

css实现代码如下: <div style="position: relative;"><!--这个层为外面的父层,需设置相对位置样式--> <div style="position: absolute;"><!--子层,需设置绝对位置样式--> <i......

niithub ⋅ 23分钟前 ⋅ 0

作用域slot

如果父组件需要使用子组件中的内容怎么办,比如父组件需要控制子组件的显示 <div id="root"><child><template slot-scope="props"><h1>{{props.item}} <div>编辑</div></h1><......

金于虎 ⋅ 26分钟前 ⋅ 1

HongHu commonservice-eureka 项目构建过程

上一篇我们回顾了关于 spring cloud eureka的相关基础知识,现在我们针对于HongHu cloud的eureka项目做以下构建,整个构建的过程很简单,我会将每一步都构建过程记录下来,希望可以帮助到大家...

明理萝 ⋅ 29分钟前 ⋅ 1

xml和对象的相互转化

@Data//setter和getter方法,toString和equals,hashcode方法@EqualsAndHashCode//代表重写equals和hashcode方法@XmlAccessorType(XmlAccessType.FIELD)public class Classroom {@X......

拐美人 ⋅ 29分钟前 ⋅ 0

tableView cell的高度 分组头部尾部的高度 自适应

@property (nonatomic) CGFloat rowHeight; // default is UITableViewAutomaticDimension@property (nonatomic) CGFloat sectionHeaderHeight; // default is UITableViewA......

娜一片蓝色星海 ⋅ 30分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部