package com.rick.sample;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
 
public class SortUtilDemo {
 
public static void sortIdentify(List<String> lists){
SortComparator sortComparator = new SortComparator();
Collections.sort(lists, sortComparator);
}
 
public static void main(String[] args) {
ArrayList<String> lists = new ArrayList<String>();
lists.add("1.1");
lists.add("1.2");
lists.add("1.2.1");
lists.add("3.1.2");
lists.add("2.6.6");
lists.add("2.6.3");
lists.add("1.10.1");
lists.add("1.10.2");
lists.add("1.10.1.2");
lists.add("1.1.1");
lists.add("10.1.1");
 
sortIdentify(lists);
 
for (String ids : lists) {
System.out.println(ids);
}
}
}
 
/**
 * 重写排序接口
 * @author Administrator
 */
class SortComparator implements Comparator<String>{
@Override
public int compare(String pre, String suf) {
String[] preArrs = pre.split("\\.");
String[] sufArrs = suf.split("\\.");
int len = preArrs.length > sufArrs.length ? preArrs.length : sufArrs.length;
for (int i = 0; i < len; i++) {
int preNum = 0;
int sufNum = 0;
 
if (i < preArrs.length) {
preNum = Integer.parseInt(preArrs[i]);
}
 
if (i <sufArrs.length) {
sufNum = Integer.parseInt(sufArrs[i]);
}
 
if (preNum > sufNum) {
return 1;
} else if(preNum < sufNum){
return -1;
}
return 0;
}
}

160308、java排序(形如1.1、1.2.1)的更多相关文章

  1. 常用Java排序算法

    常用Java排序算法 冒泡排序 .选择排序.快速排序 package com.javaee.corejava; public class DataSort { public DataSort() { ...

  2. java排序集锦

    java实现排序的一些方法,来自:http://www.javaeye.com/topic/548520 package sort; import java.util.Random; /** * 排序 ...

  3. Java排序算法之直接选择排序

    Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...

  4. (转)JAVA排序汇总

    JAVA排序汇总 package com.softeem.jbs.lesson4; import java.util.Random; /** * 排序测试类 * * 排序算法的分类如下: * 1.插入 ...

  5. java排序算法(一):概述

    java排序算法(一)概述 排序是程序开发中一种非常常见的操作,对一组任意的数据元素(活记录)经过排序操作后,就可以把它们变成一组按关键字排序的一组有序序列 对一个排序的算法来说,一般从下面三个方面来 ...

  6. java排序算法(十):桶式排序

    java排序算法(十):桶式排序 桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征: 待排序列所有的值处于一个可枚举的范围之类: 待排序 ...

  7. java排序算法(九):归并排序

    java排序算法(九):归并排序

  8. java排序算法(八):希尔排序(shell排序)

    java排序算法(八):希尔排序(shell排序) 希尔排序(缩小增量法)属于插入类排序,由shell提出,希尔排序对直接插入排序进行了简单的改进,它通过加大插入排序中元素之间的间隔,并在这些有间隔的 ...

  9. java排序算法(七):折半插入排序

    java排序算法(七):折半插入排序 折半插入排序法又称为二分插入排序法,是直接插入排序法的改良版本,也需要执行i-1趟插入.不同之处在于第i趟插入.先找出第i+1个元素应该插入的位置.假设前i个数据 ...

  10. java排序算法(六):直接插入排序

    java排序算法(六):直接插入排序 直接插入排序的基本操作就是将待的数据元素按其关键字的大小插入到前面的有序序列中 直接插入排序时间效率并不高,如果在最坏的情况下,所有元素的比较次数的总和为(0+1 ...

随机推荐

  1. atitit.设计文档---操作日志的实现

    atitit.设计文档---操作日志的实现 日志查询 1 ----mybatis  配置... 1 添加日志 1 日志查询 <a class="l-link" href=&q ...

  2. 修改JQM的默认配置属性

    从本文开始,使用 jQuery Mobile 与 HTML5 开发 Web App 系列将会进入第三部分——jQuery Mobile 事件与方法,这其中将会利用之前所讲述的 jQuery Mobil ...

  3. Linux 命令之权限修改

    chmod 改变一个文件的权限:chmod [mode] file.txt改变一个目录的权限:chmod [mode] dir改变一个目录和其子目录的权限:    chmod [mode] dir - ...

  4. jquery ajaxSubmit

    <script type="text/javascript" src="jquery/jquery.js"></script></ ...

  5. JS - caller,callee,call,apply

    在提到上述的概念之前,首先想说说javascript中函数的隐含参数:arguments Arguments : 该对象代表正在执行的函数和调用它的函数的参数. [function.]argument ...

  6. am335x alsa codec调试

    root@phyCORE-AM335x:~ aplay -l**** List of PLAYBACK Hardware Devices ****card 0: audio [PCM051 audio ...

  7. js跨域问题(2)

    前两天碰到一个跨域问题的处理,使用jsonp可以解决.(http://www.cnblogs.com/xtechnet/p/4123210.html) 最近再整理了一下: 非CORS 1.jsonp. ...

  8. 实例具体解释Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(二)

    这是本系列的第二篇,内容是 prefetch_related() 函数的用途.实现途径.以及用法. 本系列的第一篇在这里 第三篇在这里 3. prefetch_related() 对于多对多字段(Ma ...

  9. Requests blocked by CORS policy in spring boot and angular

    在本地启动Spring Boot后端和Angular前端调试时遇到跨域访问的问题导致前端请求失败. 错误描述 Access to XMLHttpRequest at 'http://localhost ...

  10. 10款CSS3按钮 - 再也不用为按钮设计而发愁了

    这次主要给大家分享10款风格各异的CSS3按钮,如果你希望你的页面也能有很炫的样式,那么我相信这10款CSS3按钮就非常适合你,而且每一款都整理了源代码供参考,一起来看看吧. 1.绚丽的CSS3发光按 ...