Java关于List<String> 进行排序,重写Comparator()方法
1.对list进行排序,list中的参数类型是Stirng,参数的格式不完全一样,例如有null,"","51003","510020"等
    public static void main(String args[]){
        List<String> list = new ArrayList<>();
        list.add("51003");
        list.add("510020");
        list.add("");
        list.add(null);
        list.add("510060");
        Collections.sort(list,new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                if(o1 == null || o2 == null){
                    return -1;
                }
                if(o1.length() > o2.length()){
                    return 1;
                }
                if(o1.length() < o2.length()){
                    return -1;
                }
                if(o1.compareTo(o2) > 0){
                    return 1;
                }
                if(o1.compareTo(o2) < 0){
                    return -1;
                }
                if(o1.compareTo(o2) == 0){
                    return 0;
                }
                return 0;
            }
        });
        for(String s:list){
            System.out.println(s);
        }
    }
输出:
null
51003
510020
510060
Java关于List<String> 进行排序,重写Comparator()方法的更多相关文章
- java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
		/*TreeSet * treeSet存入数据后自动调用元素的compareTo(Object obj) 方法,自动对数据进行排序 * 所以输出的数据是经过排序的数据 * 注:compareTo方法返 ... 
- Java Arrays.sort()重写comparator方法
		先看一下接口 Arrays.sort(T[],Comparator<? super T> c); comparator要重写compare方法 compare方法大概长这样,返回值> ... 
- java Collections.sort()实现List排序的默认方法和自定义方法
		1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list. ... 
- java Collections.sort()实现List排序的默认方法和自定义方法【转】
		1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list. ... 
- Effective Java 第三版——12. 始终重写 toString 方法
		Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ... 
- java 新创建的类要重写的方法
		重写toString方法,可以控制println打印的结构. 如果需要往hashSet或者HashMap中存,需要重写hashCode和equals方法,因为hashSet执行添加,以对象为参数删除, ... 
- Java常见面试题02-方法重写和方法重载的区别?方法重载能改变返回值类型吗?
		方法重写和方法重载的区别?方法重载能改变返回值类型吗? A:Override方法重写和Overload方法重载的区别? Overload是否可以改变返回值类型?可以 方法重写 • 子类中 ... 
- java对象转换String类型的三种方法
		在很多情况下我们都需要将一个对象转换为String类型.一般来说有三种方法可以实现:Object.toString().(String)Object.String.valueOf(Object).下面 ... 
- Java中List的sort排序重写
		最近遇到需要使用list中sort排序功能,list中存的是自己写的类,所以需要重写sort函数,一般实现如下: Collections.sort(voList, new Comparator< ... 
随机推荐
- (转)OpenStack —— 原理架构介绍(一、二)
			原文:http://blog.51cto.com/wzlinux/1961337 http://blog.51cto.com/wzlinux/category18.html-------------O ... 
- seajs模块路径解析 简单总结
			最近在试着用 seajs + grunt 搭建项目雏形, 遇到的最大的问题就是 seajs 命名与调用, 简单总结一下. 模块调用 seajs中调用模块有两种方式,seajs.use(ID) . re ... 
- Mac 提交代码到Github
			然后在GitHub上创建版本库(Repository),在GitHub首页上,点击“Create a New Repository”,如下所示(为了便于后面演示,创建README.md这步暂不勾选): ... 
- Google Java 编程风格指南 —— 见微知著
			目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才 ... 
- Scrum 冲刺博客第五篇
			一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 实现题目的生成并将其显示到页面上,设置了背景音乐 今天计划完成的工作 判断 ... 
- 【转】合理的布局,绚丽的样式,谈谈Winform程序的界面设计
			从事Winform开发很多年了,由于项目的需要,设计过各种各样的界面效果.一般来说,运用传统的界面控件元素,合理设计布局,能够设计出比较中规中矩的标准界面:利用一些换肤的控件或者部分界面组件,能够设计 ... 
- 关于安装多个版本jdk之后java -version不正确的问题
			问题描述: 今天突然想写一个socket通信的小应用,分别采用BIO.NIO.AIO的方式来实现,来复习前面看的关于TCP/UDP通信的知识.于是乎在原来安装了jdk1.6的机子上重新安装了jdk1. ... 
- Tomcat源码分析——server.xml文件的加载
			前言 作为Java程序员,对于tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载的进行分析. 源码分析 Bootstrap的 ... 
- Android服务--布局服务(LayoutInflater)
			1. 基本概念 1. 概念: 参考资料:https://www.cnblogs.com/androidez/archive/2013/07/01/3164729.html 一个用于加载布局的系统服务, ... 
- centOS 7镜像文件下载
