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 ...
- ansible笔记(7):常用模块之包管理模块
1.yum_repository模块 用于远程管理远程主机上的yum仓库. 参数解析: name:必须参数,用于指定要操作的唯一的仓库ID,也就是.repo配置文件中每个仓库对应的“中括号”内的仓库I ...
- Linux jpeglib库的安装
tar -zxvf jpegsrc.v9.tar.gz cd jpeg9 ./configure --enable-shared --enable-static 分别对动态链接库和静态链接库的支持 ...
- [Note]后缀自动机
后缀自动机 代码 #include <cstdio> #include <algorithm> #include <cstring> const int M = 1 ...
- ASP.NET Core Web API 路由的有效使用
ROUTING 在 .NET Core Web API 项目中,我们应该使用属性路由代替传统路由,这是因为属性路由可以帮助我们匹配路由参数名称与 Action 内的实际参数方法.另一个原因是路由参数的 ...
- 闲来无事.gif
- Codeforces 1315B Homecoming (二分)
After a long party Petya decided to return home, but he turned out to be at the opposite end of the ...
- yii2的防御csrf攻击机制
csrf,中文名称:跨站请求伪造,可以在百度上搜索资料,详细了解这一方面的概念.对于我们是非常有帮助的.yii2的csrf的实现功能是在yii\web\request类实现功能的.request类中的 ...
- JavaScript 推箱子游戏
推箱子游戏的 逻辑非常简单,但是如果不动手的话,还是不太清楚.我在这里讲一下自己的思路. 制作推箱子,首先要有自己的设计素材.如下我也是网上找的素材 第二步,理清游戏的规则. 游戏规则: 1.小人将箱 ...
- VMware克隆centos后需要进行修改配置的地方
1. 首先在VMware中通过复制现在状态的虚拟机或者快照形式的虚拟机,选择完整复制文件进行克隆. 2.打开克隆的虚拟机之后,需要修改主机名和相应的hosts表 2.1 修改主机名 输入 vi /e ...