java使用collections.sort排序模板
来源:互联网 发布:hashset源码解析 编辑:程序博客网 时间:2024/06/05 20:20
做java应用开发常常需要对集合进行升降序操作,习惯了C#中LINQ对java中集合操作实在不感冒(PS:不得不吐槽一下,java更新速度太慢了 C#在3.0就加上了LINQ,lamba等新特性,到现在java这些特性还不是标准)
第一步定义一个需要排序的类person
package com.dbc.yangg.main.test;import java.lang.reflect.Method;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Person {String username;String department;int id;double codeId;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getDepartment() {return department;}public void setDepartment(String department) {this.department = department;}public int getId() {return id;}public double getCodeId() {return codeId;}public Person(String username,double codeID,int id,String department){this.username=username;this.codeId=codeID;this.id=id;this.department=department;}public static void sortObj(List<Person> persons,Type type){sortObj(persons,type,OrderBy.ASC);}public static void sortObj(List<Person> persons,Type type,OrderBy orderBy){Collections.sort(persons, new Compare(type,orderBy));}public enum Type{USERNAME,DEPARTMENT,ID,CODEID;}public enum OrderBy{DESC,ASC;}private static class Compare implements Comparator<Person>{private Type type;private OrderBy orderBy;public Compare(Type type,OrderBy orderBy){this.type=type;this.orderBy=orderBy;}@Overridepublic int compare(Person arg0, Person arg1) {// TODO Auto-generated method stubint result=0;switch (this.type) {case USERNAME:result=arg0.getUsername().compareTo(arg1.getUsername());break;case DEPARTMENT:result=arg0.getDepartment().compareTo(arg1.getDepartment());break;case ID:result=arg0.getId()-(arg1.getId());break;case CODEID:if(arg0.getCodeId()>=arg1.getCodeId()){result=1;}else result=-1;break;}if(orderBy==OrderBy.DESC){result*=-1;}return result;}}}
第二步 编写测试代码
package com.dbc.yangg.main.test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.IdentityHashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.TreeMap;import com.dbc.yangg.main.test.Person.OrderBy;import com.dbc.yangg.main.test.Person.Type;import sun.awt.util.IdentityArrayList;public class ThreeHomework {public static void main(String[] argv){List<Person> persons=new ArrayList<Person>();Person person1=new Person("hadoop", 12.5, 3, "iihadoop");Person person2=new Person("openstack", 25.5, 6, "aopenstack");Person person3=new Person("hive", 12.4, 9, "bhive");Person person4=new Person("pig", 8.8, 25, "cpig");Person person5=new Person("hbase", 5.8, 5, "dhbase");Person person6=new Person("mongodb", 12.5, 7, "emongodb");persons.add(person1);persons.add(person2);persons.add(person3);persons.add(person4);persons.add(person5);persons.add(person6);System.out.println(">>>>>>>>>>\t原始数据\t<<<<<<<<<<<<<");print(persons);System.out.println(">>>>>>>>>>\tID ADS\t<<<<<<<<<<<<<");Person.sortObj(persons, Type.ID);print(persons);System.out.println(">>>>>>>>>>\tID DESC\t<<<<<<<<<<<<<");Person.sortObj(persons, Type.ID,OrderBy.DESC);print(persons);System.out.println(">>>>>>>>>>\tCODEID\t<<<<<<<<<<<<<");Person.sortObj(persons, Type.CODEID);print(persons);System.out.println(">>>>>>>>>>\tUSERNAME\t<<<<<<<<<<<<<");Person.sortObj(persons, Type.USERNAME);print(persons);System.out.println(">>>>>>>>>>\tDEPARTMENT\t<<<<<<<<<<<<<");Person.sortObj(persons, Type.DEPARTMENT,OrderBy.DESC);print(persons); } private static void print(List<Person> persons){System.out.println("ID"+"\t"+"CodeID"+"\t"+"username"+"\t"+"department");for(Person ps:persons){System.out.println(ps.getId()+"\t"+ps.getCodeId()+"\t"+ps.getUsername()+"\t\t"+ps.getDepartment());}}}
>>>>>>>>>>原始数据<<<<<<<<<<<<<IDCodeIDusernamedepartment312.5hadoopiihadoop625.5openstackaopenstack912.4hivebhive258.8pigcpig55.8hbasedhbase712.5mongodbemongodb>>>>>>>>>>ID ADS<<<<<<<<<<<<<IDCodeIDusernamedepartment312.5hadoopiihadoop55.8hbasedhbase625.5openstackaopenstack712.5mongodbemongodb912.4hivebhive258.8pigcpig>>>>>>>>>>ID DESC<<<<<<<<<<<<<IDCodeIDusernamedepartment258.8pigcpig912.4hivebhive712.5mongodbemongodb625.5openstackaopenstack55.8hbasedhbase312.5hadoopiihadoop>>>>>>>>>>CODEID<<<<<<<<<<<<<IDCodeIDusernamedepartment55.8hbasedhbase258.8pigcpig912.4hivebhive312.5hadoopiihadoop712.5mongodbemongodb625.5openstackaopenstack>>>>>>>>>>USERNAME<<<<<<<<<<<<<IDCodeIDusernamedepartment312.5hadoopiihadoop55.8hbasedhbase912.4hivebhive712.5mongodbemongodb625.5openstackaopenstack258.8pigcpig>>>>>>>>>>DEPARTMENT<<<<<<<<<<<<<IDCodeIDusernamedepartment312.5hadoopiihadoop712.5mongodbemongodb55.8hbasedhbase258.8pigcpig912.4hivebhive625.5openstackaopenstack
ok 可以早点睡了 明天继续到公司各种扯皮(~~~~~~生命不止,折腾不休~~~~~~~~)
0 0
- java使用collections.sort排序模板
- java List 排序 Collections.sort
- java中的Collections.sort排序
- java List 排序 Collections.sort()
- java List 排序 Collections.sort
- java List 排序 Collections.sort()
- JAVA Collections.sort()排序介绍
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java中Collections.sort排序
- java List 排序 Collections.sort()
- java集合排序 Collections.sort
- java中Collections.sort排序
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- java List 排序 Collections.sort()
- 黑马程序员--字节流,转换流(重要,很简单,就那么几个格式)
- mysql 插入数据后返回当前的自增ID方法
- VMware技术大讲堂-vCenter Operation Manager
- java 基础知识1-和c++的一些区别
- Android之基于XMPP协议即时通讯软件(三)
- java使用collections.sort排序模板
- Oracle字符集
- mysql存储过程插入后返回ID
- DMA Engine
- Win8快捷键收藏,效率党必备!珍惜生命者必备!
- Java设计模式
- listview Filter
- JS 数字,金额 用逗号 隔开(数字格式化)
- 在MyEclipse 6.5中配置ext开发环境