精华内容
下载资源
问答
  • 使用Java8流和list.sort 两种方式,经简单测试,2个方式的时间差异不大 private List<Map<String, Object>> getListMaps() { List<Map<String, Object>> htMachineAccountList = new ...

    使用Java8流和list.sort 两种方式,经简单测试,2个方式的时间差异不大

    private List<Map<String, Object>> getListMaps() {
            List<Map<String, Object>> htMachineAccountList = new ArrayList<>();
    
            Map<String, Object> map1 = new HashMap<>();
            map1.put("FDQ_DEF_001", Timestamp.valueOf(LocalDateTime.of(LocalDate.of(2020, 1, 2), LocalTime.ofNanoOfDay(0))));
            map1.put("FJD_DEF_001", 3.6);
            map1.put("FHT_DEF_002", 111);
            htMachineAccountList.add(map1);
            Map<String, Object> map2 = new HashMap<>();
            map2.put("FDQ_DEF_001", Timestamp.valueOf(LocalDateTime.of(LocalDate.of(2020, 1, 8), LocalTime.ofNanoOfDay(0))));
            map2.put("FJD_DEF_001", 8.2);
            map2.put("FHT_DEF_002", 222);
            htMachineAccountList.add(map2);
            for (int i = 0; i < 10000000; i++) {
                Map<String, Object> map3 = new HashMap<>();
                map3.put("FDQ_DEF_001", Timestamp.valueOf(LocalDateTime.of(LocalDate.of(2020, 1, 5), LocalTime.ofNanoOfDay(0))));
                map3.put("FJD_DEF_001", i);
                map3.put("FHT_DEF_002", 333);
                htMachineAccountList.add(map3);
            }
            return htMachineAccountList;
        }
    
        @Test
        public void testList01() {
            long l1 = System.currentTimeMillis();
            //到期日  FDQ_DEF_001 》  顺序号	FJD_DEF_001 》 编号 FHT_DEF_002
            List<Map<String, Object>> htMachineAccountList = getListMaps();
            List<Map<String, Object>> collect = htMachineAccountList.stream().sorted((o1, o2) -> {
                Timestamp fdqDef001 = (Timestamp) o1.get("FDQ_DEF_001");
                Timestamp fdqDef002 = (Timestamp) o2.get("FDQ_DEF_001");
                if (fdqDef001.compareTo(fdqDef002) > 0) {
                    return 1;
                } else if (fdqDef001.compareTo(fdqDef002) < 0) {
                    return -1;
                } else if (fdqDef001.compareTo(fdqDef002) == 0) {
                    String fjdDef001 = o1.get("FJD_DEF_001").toString();
                    String fjdDef002 = o2.get("FJD_DEF_001").toString();
                    if (fjdDef001.compareTo(fjdDef002) > 0) {
                        return 1;
                    } else if (fjdDef001.compareTo(fjdDef002) < 0) {
                        return -1;
                    } else if (fjdDef001.compareTo(fjdDef002) == 0) {
                        String def002 = o1.get("FHT_DEF_002").toString();
                        String def003 = o2.get("FHT_DEF_002").toString();
                        if (def002.compareTo(def003) > 0) {
                            return 1;
                        } else if (def002.compareTo(def003) < 0) {
                            return -1;
                        } else {
                            return 1;
                        }
                    }
                }
                return 0;
            }).collect(Collectors.toList());
    //        for (Map<String, Object> map : collect) {
    //            map.forEach((k, v) -> {
    //                System.out.print(" " + v + "  ");
    //            });
    //            System.out.println();
    //        }
            long l2 = System.currentTimeMillis();
            System.out.println((l2-l1)/1000);
        }
    
    
        @Test
        public void testListSort02() {
            long l1 = System.currentTimeMillis();
            //到期日  FDQ_DEF_001 》  顺序号	FJD_DEF_001 》 编号 FHT_DEF_002
            List<Map<String, Object>> htMachineAccountList = getListMaps();
    
            htMachineAccountList.sort((o1, o2) -> {
                Timestamp fdqDef001 = (Timestamp) o1.get("FDQ_DEF_001");
                Timestamp fdqDef002 = (Timestamp) o2.get("FDQ_DEF_001");
                if (fdqDef001.compareTo(fdqDef002) > 0) {
                    return 1;
                } else if (fdqDef001.compareTo(fdqDef002) < 0) {
                    return -1;
                } else if (fdqDef001.compareTo(fdqDef002) == 0) {
                    String fjdDef001 = o1.get("FJD_DEF_001").toString();
                    String fjdDef002 = o2.get("FJD_DEF_001").toString();
                    if (fjdDef001.compareTo(fjdDef002) > 0) {
                        return 1;
                    } else if (fjdDef001.compareTo(fjdDef002) < 0) {
                        return -1;
                    } else if (fjdDef001.compareTo(fjdDef002) == 0) {
                        String def002 = o1.get("FHT_DEF_002").toString();
                        String def003 = o2.get("FHT_DEF_002").toString();
                        if (def002.compareTo(def003) > 0) {
                            return 1;
                        } else if (def002.compareTo(def003) < 0) {
                            return -1;
                        } else {
                            return 1;
                        }
                    }
                }
                return 0;
            });
    
    //        for (Map<String, Object> map : htMachineAccountList) {
    //            map.forEach((k, v) -> {
    //                System.out.print(" " + v + "  ");
    //            });
    //            System.out.println();
    //        }
            long l2 = System.currentTimeMillis();
            System.out.println((l2-l1)/1000);
        }

     

     

     

    展开全文
  • 正序 List.stream().sorted(Comparator.comparing(PersEmpHouseholdExcelDto::getId)).collect(Collectors.toList()); 降序 List.stream().sorted(Comparator.comparing(PersEmpHouseholdExcelDto::getId).reversed...

    正序

    List.stream().sorted(Comparator.comparing(PersEmpHouseholdExcelDto::getId)).collect(Collectors.toList());
    

    降序

    List.stream().sorted(Comparator.comparing(PersEmpHouseholdExcelDto::getId).reversed()).collect(Collectors.toList());
    
    展开全文
  • Java8按某个字段排序

    千次阅读 2020-08-06 14:06:04
    @Test public void sorted() { EmployDO emp = EmployDO.builder().age("18").name("张小华").sex("男").position("服务员").build(); EmployDO emp2 = EmployDO.builder().age("20").name("张松月").sex("女")....
    	@Test
        public void sorted() {
            EmployDO emp = EmployDO.builder().age("18").name("张小华").sex("男").position("服务员").build();
            EmployDO emp2 = EmployDO.builder().age("20").name("张松月").sex("女").position("服务员").build();
            EmployDO emp3 = EmployDO.builder().age("30").name("李桂芝").sex("女").position("服务员").build();
            EmployDO emp4 = EmployDO.builder().age("26").name("宋倩").sex("女").position("服务员").build();
            EmployDO emp5 = EmployDO.builder().age("12").name("徐盛").sex("男").position("服务员").build();
            List<EmployDO> employDOList = Arrays.asList(emp, emp2, emp3, emp4, emp5);
            // 升序
            employDOList.stream().sorted(Comparator.comparing(EmployDO::getAge)).collect(Collectors.toList())
                    .forEach(s -> System.out.print(s.getName() + "  "));
            System.out.println("      ");
            // 降序
            employDOList.stream().sorted(Comparator.comparing(EmployDO::getAge).reversed())
                    .forEach(s -> System.out.print(s.getName() + "  "));
    
        }
    

    打印结果:
    徐盛 张小华 张松月 宋倩 李桂芝
    李桂芝 宋倩 张松月 张小华 徐盛

    展开全文
  • java中List按照指定字段排序工具类

    万次阅读 2013-12-31 16:35:52
    java中List按照指定字段排序工具类,可以按照字段和排序方式排序,有例子,很实用的东东!

    文章标题:java中List按照指定字段排序工具类.

    文章地址: http://blog.csdn.net/5iasp/article/details/17717179

     

    包括如下几个类

     

    1. 实体类

     

    package com.newyear.wish;
    
    /**
     * 实体类
     *
     */
    public class Video {
    
    	public Video(int id, String title, int hits) {
    		super();
    		this.id = id;
    		this.title = title;
    		this.hits = hits;
    	}
    
    	private int id;
    	private String title;
    	private int hits;
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getTitle() {
    		return title;
    	}
    	public void setTitle(String title) {
    		this.title = title;
    	}
    	public int getHits() {
    		return hits;
    	}
    	public void setHits(int hits) {
    		this.hits = hits;
    	}
    
    }
    


    2. list排序工具类

     

    package com.newyear.wish;
    
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    /**
     *  List按照指定字段排序工具类
     *
     * @param <T>
     */
    
    public class ListSortUtil<T> {
    	/**
    	 * @param targetList 目标排序List
    	 * @param sortField 排序字段(实体类属性名)
    	 * @param sortMode 排序方式(asc or  desc)
    	 */
    	@SuppressWarnings({ "unchecked", "rawtypes" })
    	public void sort(List<T> targetList, final String sortField, final String sortMode) {
    	
    		Collections.sort(targetList, new Comparator() {
    			public int compare(Object obj1, Object obj2) { 
    				int retVal = 0;
    				try {
    					//首字母转大写
    					String newStr=sortField.substring(0, 1).toUpperCase()+sortField.replaceFirst("\\w",""); 
    					String methodStr="get"+newStr;
    					
    					Method method1 = ((T)obj1).getClass().getMethod(methodStr, null);
    					Method method2 = ((T)obj2).getClass().getMethod(methodStr, null);
    					if (sortMode != null && "desc".equals(sortMode)) {
    						retVal = method2.invoke(((T) obj2), null).toString().compareTo(method1.invoke(((T) obj1), null).toString()); // 倒序
    					} else {
    						retVal = method1.invoke(((T) obj1), null).toString().compareTo(method2.invoke(((T) obj2), null).toString()); // 正序
    					}
    				} catch (Exception e) {
    					throw new RuntimeException();
    				}
    				return retVal;
    			}
    		});
    	}
    	
    }
    


    3. 测试类

    package com.newyear.wish;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ListSortUtilTest {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    
    		
    		List<Video> targetList = new ArrayList<Video>();
    		targetList.add(new Video(1,"title1",31));
    		targetList.add(new Video(2,"title2",12));
    		targetList.add(new Video(3,"title3",53));
    		System.out.println("排序前: " + targetList);
    		
    		ListSortUtil<Video> sortList = new ListSortUtil<Video>();
    		sortList.sort(targetList, "hits", "asc");
    		System.out.println("排序后:" +targetList);
    
    	}
    
    }
    


     


    测试执行结果:

    排序前: [com.newyear.wish.Video@c17164, com.newyear.wish.Video@1fb8ee3, com.newyear.wish.Video@61de33]
    排序后:[com.newyear.wish.Video@1fb8ee3, com.newyear.wish.Video@c17164, com.newyear.wish.Video@61de33]

     

    展开全文
  • Java List 按某字段排序

    千次阅读 2019-12-27 18:15:01
    List 按某字段排序 代码支持:字符串(String)、日期(Date)、整型(Integer)、整形(Long) 使用场景:将list集合中的数据 按照某个字段进行排序,比如按日期排序倒叙排序或者顺序排序 注意:调用方法 ...
  • 摘要: 在日常开发中,经常会用到排序算法,...一:按指定字段排序,默认倒序,如下写法: /** * @description 对List集合按指定字段排序,默认倒序 * @author zhaoxinguo * @date 2019/12/26 */ private void s...
  • 之前写过一篇博客 【Java实现 根据list列表元素的时间字段进行排序】,其中是用的java自带的集合工具类[java.util.Collections]对list列表元素的指定属性进行排序,最近刚刚翻看源码,发现Collections这个工具类的...
  • js 根据json数组多个字段排序的实现代码如下所示: /**数组根据数组对象中的某个属性值进行排序的方法 * 使用例子:newArray.sort(sortByArr(['number'],false)) //表示根据number属性降序排列;若第二个参数不传递...
  • Java中List根据指定字段排序工具类

    千次阅读 2016-11-15 15:11:53
    根据指定字段来对List进行排序
  • //根据Dict对象的sort字段降序排序 dictList.sort(Comparator.comparing(Dict::getSort).reversed()); //根据Dict对象的sort字段升序排序 dictList.sort(Comparator.comparing(Dict::getSort));
  • 利用java8 stream 根据集合中数据的某个字段排序 升序(默认) persEmpHouseholdExcelDtoList.stream().sorted(Comparator.comparing(PersEmpHouseholdExcelDto::getId)).collect(Collectors.toList()); 降序 ...
  • 举个栗子:以下是一个同学LoL职业选手表现涨幅信息对象,其中deviation为涨幅可正可负,需求是要求表现波动最大的十名选手的信息,并按波动和年龄排序,(即波动最大的且年龄最大的选手我们就发警告函,让其退役,...
  • //数组排序,可以指定一个Comparator比较器 Arrays.sort( data, new Comparator(){  public int compare(Product o1,Product o2){  return o1.price - o2.price; //如果是升序,第一个对象大于第二个...
  • RuntimeException("暂不支持其它类型字段排序,如有需要请自己添加." ); } } catch (Exception e) { e.printStackTrace(); } return result > 0 ? 1 : result ; } }); }   转载于:...
  • 根据时间排序: 1 list.sort((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime())); 取list前几条数据: 1 List newList = list.subList(start,end); start, end 指从第几个开始到第...
  • //json 字符串 String dd = "[{id:1,adress:上海,age:21},{id:2,adress:上海,age:32},{id:3,adress:上海,age:28},{id:4,adress:上海,age...//根据age升序序排序 listObjectFifth.sort(Comparator.comparing(obj -> .
  • java】list根据元素字段进行优先级排序 一、问题说明 在做一个油田系统时遇到的需要根据优先级排序的问题 现有一个预算单的集合list,要根据历史单据做新的预算单据,但在做之前要查到之前的单据进行修改另存为新...
  • 于是就用了一下方法对查询的结果集根据时间排序。我用简单的用户类来演示排序过程,做一下记录。 本次测试使用了nutz框架的Json工具类对list结果进行打印,maven引用如下: &lt;dependency&gt; &...
  • } } 校验: import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class DemoTest { public static void main(String[] args) { TestA testA1 ...
  • 1.需求场景读取指定格式字符数据,将数据 按照指定字段分类,并对分类和分类数据按照指定字段排序2.项目环境普通java web 项目3.实现方法(1) 集合数据集public class Food { private String type;//分类名称 ...
  • java实体类集合按某字段排序方法

    千次阅读 2020-02-29 16:17:47
    今天有个小需求,多个实体类的集合合并以后,按照实体类的某个属性(时间)进行排序,自己写的方法太蠢且复杂了,所以在网上找了方法,感觉还是比较简洁有效的,现在记录下来以备后用。 package simpletest; /** ...
  • list实现根据某一个字段排序

    千次阅读 2019-07-11 09:53:16
    针对于数组只需要使用Arrays.sort就可以实现,本文主要讨论在list的情况下就行排序,实际开发中可能需要把list的试题集合根据某一个字段排序,下面就来介绍list的排序。 1.要想实现排序首先要确保list里面的元素是...
  • 现在,我要对List<Logs> 中的数据按 times 字段进行排序 @Test public void testMath(){ List<Logs> list = new ArrayList(); list.add(new Logs("1","chen", "djifand", "jdifa", "jdfid", 49L)); list.add(new ...
  • 给出提前排序的数组,jsonArray中字段根据数组顺序重新排序
  • Oracle指定字段排序

    2019-03-08 14:21:26
    -- 按单位排序 --&gt; &lt;select id="getCheckContactInfoBySort" parameterType="java.util.Map" resultMap="BaseResultMap"&gt; SELECT T.*, SYS.* FROM EDIIS_CHECK...
  • 处理java list集合元素根据某些字段排序 一、jdk1.6的环境下 新建ComparatorSort类,并实现Comparator接口,重写compare方法 降序排序:o1的元素>o2的元素,并返回-1;o1的元素小于o2的元素,并返回1 升序排序:o1...
  • 文章目录java 8 对JSONArray 按指定字段排序,升序和倒序,经典一、comparing 方法的使用二、reversed 方法的使用 java 8 对JSONArray 按指定字段排序,升序和倒序,经典 以前在内存中用大数据量的排序不论使用冒泡...
  • * 按照指定字段给list去重 * @param list * @return */ public static List<DataModel> niqueList(List<DataModel> list){ //去重,根据code字段 List<DataModel> uniqueList = list...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,210
精华内容 40,084
关键字:

java根据指定字段排序

java 订阅