文档章节

LIst 数据排序

kuchawyz
 kuchawyz
发布于 10/12 13:27
字数 450
阅读 6
收藏 0
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		System.out.println(44);
		List<CallRecordVo> list1 = createTestList();
		
		Collections.sort(list1, new Comparator<CallRecordVo>() {
			@SuppressWarnings({ "unused", "rawtypes" })
			@Override
			public int compare(CallRecordVo o1, CallRecordVo o2) {
				int flag = 0;
				int i = new Integer(o1.getVillageId()).compareTo(o2.getVillageId());
                if(i == 0){
                	Matcher matcher = Pattern.compile(
							"\\d+|[甲乙己丙丁]+|[一二三四五六七八九十]").matcher(
							o1.getDoorInfo());
					List listo1 = new ArrayList();
					while (matcher.find()) {
						// System.out.println(matcher.group());
						listo1.add(NumHelper.toLittleNum(matcher.group()));
					}
					Matcher matcher2 = Pattern.compile(
							"\\d+|[甲乙己丙丁]+|[一二三四五六七八九十]").matcher(
							o2.getDoorInfo());
					List listo2 = new ArrayList();
					while (matcher2.find()) {
						// System.out.println(matcher.group());
						listo2.add(NumHelper.toLittleNum(matcher2.group()));
					}
					if(listo1.size()>=1 && listo2.size() >=1){
						int j = new Integer((int) listo1.get(0)).compareTo(new Integer( (int) listo2.get(0)));
						if(j==0){
						  if(listo1.size()>=2 && listo2.size() >=2){
							  int k = new Integer((int) listo1.get(1)).compareTo(new Integer((int) listo2.get(1)));
							  if(k == 0){
								  if(listo1.size() >= 3 && listo2.size() >= 3 ){
									  int m = new Integer((int) listo1.get(2)).compareTo(new Integer((int) listo2.get(2)));
									  return m;
								  }
							  }
							  return k;
						  }
						}
						return j;
					}
                }
                return i;
                
			}
		});

		for (CallRecordVo param : list1) {

			System.out.println(param.toString());
		}
		
	}

  

/**
	  * 构造地区排序得字段
	  * @return
	  */
	private static List<CallRecordVo> createTestList() {
		List<CallRecordVo> list = new ArrayList<CallRecordVo>();
		CallRecordVo callVo = new CallRecordVo();
		callVo.setServerStationName("22");
		callVo.setVillageId(13);
		callVo.setVillageName("万源里社区");
		callVo.setDoorInfo("44号楼一单元4号");
		list.add(callVo);
		CallRecordVo callVo1 = new CallRecordVo();
		callVo1.setServerStationName("22");
		callVo1.setVillageId(13);
		callVo1.setVillageName("万源里社区");
		callVo1.setDoorInfo("32楼36单元5号");
		list.add(callVo1);

		CallRecordVo callVo2 = new CallRecordVo();
		callVo2.setServerStationName("22");
		callVo2.setVillageId(13);
		callVo2.setVillageName("万源里社区");
		callVo2.setDoorInfo("46楼56单元4号");
		list.add(callVo2);
		
		CallRecordVo callVo3 = new CallRecordVo();
		callVo3.setServerStationName("22");
		callVo3.setVillageId(12);
		callVo3.setVillageName("梅源社区");
		callVo3.setDoorInfo("梅源里9号楼2单元4号");
		list.add(callVo3);
		CallRecordVo callVo5 = new CallRecordVo();
		callVo5.setServerStationName("22");
		callVo5.setVillageId(12);
		callVo5.setVillageName("梅源社区");
		callVo5.setDoorInfo("梅源里9号楼1单元48号");
		list.add(callVo5);
		CallRecordVo callVo6 = new CallRecordVo();
		callVo6.setServerStationName("22");
		callVo6.setVillageId(12);
		callVo6.setVillageName("梅源社区");
		callVo6.setDoorInfo("梅源里9号楼2单元44号");
		list.add(callVo6);
		CallRecordVo callVo4 = new CallRecordVo();
		callVo4.setServerStationName("22");
		callVo4.setVillageId(12);
		callVo4.setVillageName("梅源社区");
		callVo4.setDoorInfo("四栋五单元十四号");
		list.add(callVo4);
		return list;
	}

 

© 著作权归作者所有

共有 人打赏支持
kuchawyz
粉丝 3
博文 56
码字总数 29547
作品 0
北京
排序算法在项目中的使用

一、使用排序算法对map进行排序 上面使用的是compare方法进行对map排序,可是我们还是没有到原有的排序算法对map进行排序。这个排序是非常简单也是经常用到的。 很多时候我们在进行的数据,从...

小车车
2016/08/28
25
0
Freemarker中如何遍历List

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

oecp
2011/05/18
0
0
Android: ListView排序及过滤

1) 排序 ListView通过适配器得到内容数据,可以对数据list先排序再提供给ListView: private List> getData() { List> list = new ArrayList>(); //add Data ... //对list进行排序 if (!list.......

长平狐
2012/06/20
8.1K
0
有什么方法可以按照数据库查询的对查询出来的内容按照select后面的进行排序?

我现在遇到的问题是,将数据库查询出来的内容封装到list里面,但是list出来的数据都是按照字母进行排序的,我想让他按照我select后面的进行排序,有什么好的方法吗?但是取出来的总是按照字母...

无心1990
2017/12/31
4
0
LINQ 常见用法

以下数据源都假设为data 1.获取某列的不重复数据 List ids = data.Select(t => t.ID).Distinct().ToList(); 2.对list进行in查询 List ids = new List() { 1,2,3}; List data = data.Where(t......

蚊子888
2016/03/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Snackbar源码分析

目录介绍 1.最简单创造方法 1.1 Snackbar作用 1.2 最简单的创建 1.3 Snackbar消失的几种方式 2.源码分析 2.1 Snackbar的make方法源码分析 2.2 对Snackbar属性进行设置 2.3 Snackbar的show显示...

潇湘剑雨
9分钟前
0
0
分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储

分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储 摘要: 原创出处 http://www.iocoder.cn/Elastic-Job/job-storage/ 本文基于 Elastic-Job V2.1.5 版本分享 1. 概述 本文主要分享...

DemonsI
16分钟前
0
0
jmockit demo

1、@Mocked,标识一个指定的class的实例或被测对象的参数被Mock掉。 2、@Capturing,标识一个被Mock的对象,从该对象派生的子类也被Mock了。 3、@Injectable,标识只有一个指定的被测对象的内...

我的老腰啊
30分钟前
0
0
内容换行

用 <textarea>13611112222 这里想换行 13877779999</textarea><textarea>13611112222 13877779999</textarea>...

小黄狗
31分钟前
0
0
学习设计模式——单例模式

1. 认识单例模式 1. 定义:一个类中仅有一个实例,并提供一个访问它的全局访问点。 2. 结构:仅一个Singleton类,其中包含一个static类变量,而类变量的类型就是Singleton类,而且Singleton...

江左煤郎
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部