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

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<Dob> as = new ArrayList<Dob>();
System.out.println("as="+as.size());
as.add(db);
as.add(db1);
as.add(db2); Collections.sort(as, new Comparator<Dob>() {
//比较。如果年龄不同先比较年龄 ,相同就比较性别
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<Map<String,Object>> resultList) throws Exception{
// resultList是需要排序的list,其内放的是Map
// 返回的结果集
Collections.sort(resultList,new Comparator<Map<String,Object>>() { public int compare(Map<String, Object> o1,Map<String, Object> o2) { //o1,o2是list中的Map,可以在其内取得值,按其排序,此例为升序,s1和s2是排序字段值
//String FileNumber = GetFileKeyNumber(fileInfo.getKey(),2,2); Map.Entry<String, Object> fileInfo1 = null;
Map.Entry<String, Object> fileInfo2 = null;
Integer s1 = 0;
Integer s2 = 0;
Iterator<Map.Entry<String, Object>> fileMap = o1.entrySet().iterator();
while (fileMap.hasNext()) {
fileInfo1 = fileMap.next();
s1 = Integer.parseInt(GetFileKeyNumber(fileInfo1.getValue().toString(),2,2));
} Iterator<Map.Entry<String, Object>> 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;
}
}
}); }

  

Java中List的排序和List的MAp的更多相关文章

  1. Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法

    Java中List,ArrayList.Vector,map,HashTable,HashMap区别用法 标签: vectorhashmaplistjavaiteratorinteger ArrayL ...

  2. Java中常见的排序方法

    本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基 ...

  3. java中字符串的排序(1)

    按照前段时间在快速.冒泡等排序的评论中提到是否可以进行字符串的排序,由于最近有考试,时间比较紧,所以今天才实现此功能.此功能是针对一串字符川进行的实现,运行后的结果如下所示: 具体的程序相对较为简单, ...

  4. java中的选择排序之降序排列

    import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...

  5. Java中 Collection 、 List 、 Set 、 Map详解

    一.容器( Collection ) 接口    容器( Collection )是最基本的集合接口,一个容器( Collection )保存一组对象( Object ),即对象是容器的元素( Ele ...

  6. Java中Array、List、Set、Map

    一.Java中数组 数组用来存放固定数量的同类元素,声明方法: T[] ref,T ref[],如int[] intAry; int intAry[].推荐用T[]的方式,后一种方式为兼容C++习惯写 ...

  7. JAVA中利用反射机制进行对象和Map相互转换的方法

    JAVA的反射机制主要作用是用来访问对象的属性.方法等等.所以,JAVA中对象和Map相互转换可以利用JAVA的反射机制来实现.例子如下: 一.对象转Map的方法 public static Map& ...

  8. java中Collections.sort排序详解

    Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f, ...

  9. java中List的排序功能的实现

    今天在工作的时候,遇到了List排序的问题,所以总结了一下,与大家分享.Collections.sort排序的时候,用到了Comparator接口下面的compare()方法.下面的小例子中,还用到了 ...

随机推荐

  1. 图像视图-ImageView

    (一) 知识点: (1)imageView.setImageAlpha(Alpha):设置图片透明度 (2)在布局imageView中设置图片位置:android:scaleType="ce ...

  2. java基础之:java注解

    一:元注解 元注解的作用就是负责注解其他注解.Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明.Java5.0定义的元注解: 1. ...

  3. sun.misc.BASE64Decoder导入异常及处理思路

    Java后台保存base64图片数据 使用byte[] bytes = new BASE64Decoder().decodeBuffer(str);需要引入sun.misc.BASE64Decoder ...

  4. RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

    消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以 ...

  5. 50行代码实现缓存,JAVA内存模型原理

    遇见这样的高人怎么办??下面是一个简单缓存的实现,相当牛叉!自己看吧,只有50行代码. 摘自:http://www.oschina.net/code/snippet_55577_3887 import ...

  6. 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

    客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...

  7. HDFS 中向 DataNode 写入数据失败了怎么办

    https://blog.csdn.net/HeatDeath/article/details/79012258 http://wenda.chinahadoop.cn/question/3323 h ...

  8. MongoDB分片集群新增分片(自用)

    机器IP为192.168.58.11,计划在上面新建两个分片并添加到原有分片集群中. 实施如下: 1.58.11创建mongodb文件夹 mkdir -p /opt/mongodb cd  /opt/ ...

  9. Foundation框架 - NSNumber类

    NSNumber类 NSFormatter #import <Foundation/Foundation.h> int main(int argc, const char * argv[] ...

  10. Androidproject师进阶之路 :《Android开发进阶:从小工到专家》上市啦!

    封面 文件夹1 文件夹2 - 当当购买链接 - 京东购买链接 为什么写这本书 写这本书的念头由来已久了. 或许是从我打算写<Android源代码设计模式解析与实战>那时起就萌生了这个念头, ...