博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中List的排序和List的MAp
阅读量:5924 次
发布时间:2019-06-19

本文共 2648 字,大约阅读时间需要 8 分钟。

 

这里是一个类中类去实现条件优先排序的问题

package com.sun;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Demo {	public Demo() {		// TODO Auto-generated constructor stub	}	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		int a= 0;		Dob db  = new Dob();		Dob db1  = new Dob();		Dob db2  = new Dob();		db.setName("sun");		db.setAge(20);		db.setSex(3);				db1.setName("zhi");		db1.setAge(22);		db1.setSex(1);				db2.setName("yan");		db2.setAge(21);		db2.setSex(2);		List
as = new ArrayList
(); System.out.println("as="+as.size()); as.add(db); as.add(db1); as.add(db2); Collections.sort(as, new Comparator
() {//比较。如果年龄不同先比较年龄 ,相同就比较性别 public int compare(Dob arg0, Dob arg1) { int flg = arg0.getAge().compareTo(arg1.getAge()); if(flg==0){ return arg0.getSex().compareTo(arg1.getSex()); }else{ return arg0.getAge().compareTo(arg1.getAge()); } } }); for (Dob p : as) { System.out.println(p.getName()); System.out.println(p.getAge()); } System.out.println("as="+as.size()); }} class Dob { public String name; public Integer age; public Integer sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; }}

  LIst中的MAp

public void listSort(List
> resultList) throws Exception{ // resultList是需要排序的list,其内放的是Map // 返回的结果集 Collections.sort(resultList,new Comparator
>() { public int compare(Map
o1,Map
o2) { //o1,o2是list中的Map,可以在其内取得值,按其排序,此例为升序,s1和s2是排序字段值 //String FileNumber = GetFileKeyNumber(fileInfo.getKey(),2,2); Map.Entry
fileInfo1 = null; Map.Entry
fileInfo2 = null; Integer s1 = 0; Integer s2 = 0; Iterator
> fileMap = o1.entrySet().iterator(); while (fileMap.hasNext()) { fileInfo1 = fileMap.next(); s1 = Integer.parseInt(GetFileKeyNumber(fileInfo1.getValue().toString(),2,2)); } Iterator
> fileMap2 = o2.entrySet().iterator(); while (fileMap2.hasNext()) { fileInfo2 = fileMap2.next(); s2 = Integer.parseInt(GetFileKeyNumber(fileInfo2.getValue().toString(),2,2)); } if(s1>s2) { return 1; }else { return -1; } } }); }

  

转载地址:http://mhxvx.baihongyu.com/

你可能感兴趣的文章
【网络挖掘:成就与未来方向】之网络挖掘应用程序与相关概念
查看>>
ARM Cortex-M3 操作模式和特权级别
查看>>
【转】 矩阵分解方法及 在推荐系统中的应用
查看>>
设计模式之Facade---外观模式
查看>>
Heritrix 3.1.0 源码解析(二十二)
查看>>
css的层叠和特殊性小结
查看>>
DXP_protel2004_原理图设计基础_新建和添加原理图库文件_元件编辑范例
查看>>
算法结点图的多源点最短路问题和传递闭包之Floyd-Warshall算法 By ACReaper
查看>>
最大数组连续子向量的最大和
查看>>
如何从DLL或者DEF文件生成LIB文件<转>
查看>>
对象容器Effective STL——容器中所发生的对象拷贝问题
查看>>
C++文件操作
查看>>
androidclassListView的Item含有CheckBox时的处理
查看>>
配置用户组策略环回处理模式
查看>>
.NET:防止并发修改 之 离线悲观锁代码示例(离线悲观锁)
查看>>
PostgreSQL在何处处理 sql查询之三十四
查看>>
2013年6月4日星期二
查看>>
RDF和Jena RDF API入门(1)
查看>>
每日英语:How to find the career of your dreams
查看>>
Andorid之Annotation框架初使用(六)
查看>>