list中的对象或者map中的版本号排序 version排序
经常会用到版本号排序,直接把他封装成一个工具用起来比较方便。
List<A> aList = new ArrayList<>();
。。。aList 赋值 。。。
Collections.sort(aList , (a1, a2) -> {
return compareVer(a1.getversion(),a2.getversion());});
map中
Collections.sort(mapList , (map1, map2) -> {
return compareVer(map1.get("version"),map2.get("version"));});
a1在前为升序,a2在前为降序
int compareVer(String ver1, String ver2) {
int num1= version.indexOf("_");
int num2= targetVersion.lastIndexOf("_");
String firstVer= version;
String secVer= targetVersion;
if (num1> 0) {
firstVer= ver1.substring(0, num1);
}
if (num2> 0) {
secVer= ver2.substring(0, num2);
}
if (firstVer.equals(secVer)) {
return 0;
}
String[] ver1Arr= firstVer.split("\\.");
String[] ver2Arr= secVer.split("\\.");
int ver1Len= ver1Arr.length;
int ver2Len= ver2Arr.length;
int len= 0;
if (ver1Len> ver2Len) {
len= ver2Len;
} else {
len= ver1Len;
}
for (int i = 0; i < len; i++) {
if (ver1Arr[i].equals(ver2Arr[i])) {
continue;
} else {
return Long.parseLong(ver1Arr[i]) > Long.parseLong(ver2Arr[i])?1:-1;
}
}
if (ver1Len!= ver2Len) {
return ver1Len > ver2Len?1:-1;
} else {
return 0;
}
}
list中的对象或者map中的版本号排序 version排序的更多相关文章
- JVM中,对象在内存中的布局
在hotSpot虚拟机中,对象在内存中的布局可以分成对象头.实例数据.对齐填充三部分. 对象头:主要包括: 1.对象自身的运行行元数据,比如哈希码.GC分代年龄.锁状态标志等,这部分长度在32位虚拟机 ...
- Struts2把数据封装到集合中之封装到map中
struts框架封装数据可以封装到集合中也可以封装到map中,该篇博客主要讲解将数据封装到map中. 1. 封装复杂类型的参数(集合类型 Collection .Map接口等) 2. 需求:页面中有可 ...
- 【学习笔记】Java中生成对象的5中方法
概述:本文介绍以下java五种创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式. 2.使用Class类的newInstance方法 3.运用反射手段,调用java.lang.re ...
- pandas中DataFrame对象to_csv()方法中的encoding参数
当使用pd.read_csv()方法读取csv格式文件的时候,常常会因为csv文件中带有中文字符而产生字符编码错误,造成读取文件错误,在这个时候,我们可以尝试将pd.read_csv()函数的enco ...
- 数组中存放对象之java中定义类数组存放类
public class ClassArrayDemo { int age; String name; ClassArrayDemo(int age, String name) { this.age ...
- 修改Map中确定key对应的value问题
今天在码代码的时候出现一个没有预料的问题: 先看下面的代码: public static void main(String[] args) { String[] files=new String[]{ ...
- ArcGIS Engine中如何获取Map中已经选择的要素呢
1.使用IEnumFeturea对象获取map中的FeatureSelection,该方法可以获取所有图层的选择要素.IMap中的FeatureSelection可不是IFeatureSelectio ...
- Map接口----Map中嵌套Map
package cn.good.com; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impo ...
- Strut2 ognl取出存放在request,session,application和对象栈的中的值
1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet( ...
随机推荐
- 【资料】哈代&拉马努金相关,悼文,哈佛演讲,及各种杂七杂八资料整理
悼文和哈佛演讲,因为有一堆公式所以实在懒得放lofter了. 信件和其他资料翻译在这里放个备份,基本上来自<Ramanujan:Letters and commentary>和<Ra ...
- Apache Kafka(一)- Kakfa 简介与术语
Apache Kafka 1. Kafka简介.优势.以及使用场景 Kafka的优势: 开源 分布式,弹性架构,fault tolerant 水平扩展: 可以扩展到100个brokers 可以扩展到每 ...
- node 崩 处理
node_modules->bin webpack-dev-server.cmd @IF EXIST "%~dp0\node.exe" ( "%~dp0\node. ...
- 每天进步一点点------Allegro 修线
Allegro中修线的方法有很多种,这里重点介绍走线的移动和走线的替换,掌握这两种方法,基本可以完成电路板的修线工作. 走线的移动 第1步:执行菜单命令Route->Slide,进入移动走线命 ...
- party lamps(dfs优化+规律枚举)
Problem description: To brighten up the gala dinner of the IOI'98 we have a set of N coloured lamps ...
- xshell配置---文件上传命令rz和下载命令sz
1.下载安装包 方法一:手动下载安装 1)下载安装包:lrzsz-0.12.20.tar.gz 官网下载地址:http://www.ohse.de/uwe/releases/lrzsz-0.12.20 ...
- STA之RC Corner
RC corner,这里的RC指gate跟network的寄生参数,寄生参数抽取工具根据电路的物理信息,抽取出电路的电阻电容值,再以寄生参数文件输入给STA工具,常见的寄生参数文件格式为SPEF. I ...
- idea中使用Data Source and Drivers时,如果使用自己自定义的jar包
- CentOS7更换阿里yum源
更换之前确保自己安装wget yum list wget 若没有安装: yum -y install wget 首先备份原版/etc/yum.repos.d/CentOS-Base.repo cd / ...
- SQL过滤条件on和where
在使用left jion时,会生成一张中间的临时表,然后再将这张临时表返回给用户. on和where条件的区别如下:1. on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表 ...