文档章节

LIst 数据排序

kuchawyz
 kuchawyz
发布于 10/12 13:27
字数 450
阅读 9
收藏 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
博文 69
码字总数 36039
作品 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.2K
0
有什么方法可以按照数据库查询的对查询出来的内容按照select后面的进行排序?

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

无心1990
2017/12/31
31
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

没有更多内容

加载失败,请刷新页面

加载更多

线程安全性--volatile

volatile:当多个线程进行操作共享数据时,可以保证内存中的数据是可见的; @Slf4jpublic class MyVolatile { public static void main(String[] args) { ThreadRun threadRun...

wuyiyi
8分钟前
0
0
大数据入门之hadoop相关概念知识点整理

Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。今天整理了一些关于had...

技术阿飞
9分钟前
0
0
ssh 免登

ssh-copy-id三步实现SSH无密码登录和ssh常用命令 ssh-copy-id -i .ssh/id_rsa.pub 用户名字@192.168.x.xxx

miaojiangmin
11分钟前
0
0
2018阿里云双12年终大促主会场全攻略

2018阿里云双12年终大促活动已经于12月7日正式开启,从已开放的活动页面来看,活动分为两个阶段: 12月7日-12月23日的拉新返现阶段和12月24日-12月28日的TOP100英雄榜PK阶段。 活动核心亮点:...

阿里云官方博客
12分钟前
0
0
聊聊flink的MemoryStateBackend

序 本文主要研究一下flink的MemoryStateBackend StateBackend flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/StateBackend.java @PublicEvolvingpublic interface......

go4it
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部