zoukankan      html  css  js  c++  java
  • 个人整理部分工具类算法(持续更新)

    个人从近来的工作中整理部分可能对大家有用的算法和使用工具类方法,将持续更新,有好的算法大家一起讨论,哪里不正确,欢迎大家随时指正,我这里也会实时更新一些开发中比较实用的工具类方法给大家,共勉~~

      1 package com.ideal.customutils;
      2 
      3 import java.text.ParseException;
      4 import java.text.SimpleDateFormat;
      5 import java.util.Calendar;
      6 import java.util.Date;
      7 import java.util.List;
      8 import java.util.Map;
      9 
     10 import org.apache.commons.lang3.StringUtils;
     11 
     12 public class CalculationUtil
     13 {
     14 
     15     private CalculationUtil()
     16     {
     17         throw new IllegalStateException("CalculationUtil class");
     18     }
     19 
     20     /**   
     21      * @Title: getSort   
     22      * @Description: 将List进行排序[时间类型"yyyy-MM-dd HH:mm:ss"转换成毫秒后的比较排序(数值类型可直接使用)]   
     23      * @param list
     24      * @param sortColunm(需要进行排序的字段)[只有数值型数据可以排序,如不是,请转成毫秒时间戳类型]
     25      * @param desc(true-从大到小/false-从小到大) 
     26      * @return      
     27      * @author: yue_sun 
     28      * @date:   2018年4月18日 下午8:06:44   
     29      */
     30     @SuppressWarnings({ "rawtypes" })
     31     public static List getSortForDate ( List list, String sortColunm, boolean desc )
     32     {
     33         // 判断list不为空且集合的大小大于1时才进行排序操作
     34         if (!list.isEmpty() && list.size() > 1)
     35         {
     36             if (desc)
     37             {
     38                 // 将list数组中指定参数进行倒序排列
     39                 getSortForDateDesc(list, sortColunm);
     40             } else
     41             {
     42                 // 将list数组中指定参数进行正序排列
     43                 getSortForDateAsc(list, sortColunm);
     44             }
     45         }
     46         return list;
     47     }
     48 
     49     /**   
     50      * @Title: getSortForDateDesc   
     51      * @Description: 将list数组中指定参数进行倒序排列
     52      * @param list【要进行排序的list集合】
     53      * @param sortColunm【要进行排序的集合中的参数列】      
     54      * @author: yue_sun 
     55      * @date:   2019年3月26日 上午9:15:29   
     56      */
     57     @SuppressWarnings({ "rawtypes", "unchecked" })
     58     public static void getSortForDateDesc ( List list, String sortColunm )
     59     {
     60         for (int i = 0, m = list.size(); i < m; i++)
     61         {
     62             for (int j = 0, n = list.size() - i - 1; j < n; j++)
     63             {
     64                 Map map1 = (Map) list.get(j);
     65                 Map map2 = (Map) list.get(j + 1);
     66                 String timeStr1 = map1.get(sortColunm).toString();
     67                 String timeStr2 = map2.get(sortColunm).toString();
     68                 long time1 = getTimeInMillis(timeStr1);
     69                 long time2 = getTimeInMillis(timeStr2);
     70                 if (time1 < time2)
     71                 {
     72                     list.set(j, map2);
     73                     list.set(j + 1, map1);
     74                 }
     75             }
     76         }
     77     }
     78 
     79     /**   
     80      * @Title: getSortForDateAsc   
     81      * @Description: 将list数组中指定参数进行正序排列  
     82      * @param list【要进行排序的list集合】
     83      * @param sortColunm【要进行排序的集合中的参数列】         
     84      * @author: yue_sun 
     85      * @date:   2019年3月26日 上午9:15:59   
     86      */
     87     @SuppressWarnings({ "rawtypes", "unchecked" })
     88     public static void getSortForDateAsc ( List list, String sortColunm )
     89     {
     90         for (int i = 0; i < list.size(); i++)
     91         {
     92             for (int j = 0; j < list.size() - 1; j++)
     93             {
     94                 Map map1 = (Map) list.get(i);
     95                 Map map2 = (Map) list.get(j);
     96                 String timeStr1 = map1.get(sortColunm).toString();
     97                 String timeStr2 = map2.get(sortColunm).toString();
     98                 long time1 = getTimeInMillis(timeStr1);
     99                 long time2 = getTimeInMillis(timeStr2);
    100                 if (time1 < time2)
    101                 {
    102                     list.set(i, map2);
    103                     list.set(j, map1);
    104                 }
    105             }
    106         }
    107     }
    108 
    109     /**   
    110      * @Title: removeDuplicate   
    111      * @Description: 清理list中重复数据的方法
    112      * @param list
    113      * @return      
    114      * @author: yue_sun 
    115      * @date:   2018年6月26日 下午4:34:37   
    116      */
    117     @SuppressWarnings("rawtypes")
    118     public static List removeDuplicate ( List list )
    119     {
    120         for (int i = 0; i < list.size() - 1; i++)
    121         {
    122             for (int j = list.size() - 1; j > i; j--)
    123             {
    124                 if (list.get(j).equals(list.get(i)))
    125                 {
    126                     list.remove(j);
    127                 }
    128             }
    129         }
    130         return list;
    131     }
    132 
    133     /**   
    134      * @Title: getTimeInMillis   
    135      * @Description: 将时间类型转成毫秒时间戳类型 
    136      * @param dateString
    137      * @return      
    138      * @author: yue_sun
    139      * @date:   2018年4月18日 下午8:04:18  
    140      */
    141     public static long getTimeInMillis ( String dateString )
    142     {
    143         Calendar calendar = parseDate(dateString);
    144         return calendar == null ? 0 : calendar.getTimeInMillis();
    145     }
    146 
    147     /**   
    148      * @Title: parseDate   
    149      * @Description: 时间格式转换,将string时间类型转换成毫秒时间戳  
    150      * @param dateString
    151      * @return      
    152      * @author: yue_sun
    153      * @date:   2018年4月18日 下午8:00:32  
    154      */
    155     public static Calendar parseDate ( String dateString )
    156     {
    157         Calendar calendar = Calendar.getInstance();
    158         if (isBlank(dateString))
    159         {
    160             return null;
    161         }
    162         try
    163         {
    164             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    165             Date date = format.parse(dateString);
    166             calendar.setTime(date);
    167         } catch (ParseException e)
    168         {
    169             return null;
    170         }
    171         return calendar;
    172     }
    173 
    174     /**   
    175      * @Title: joinForQuotationMarks   
    176      * @Description: 将list生成sql查询条件中的in格式的参数,带引号参数
    177      * @param list
    178      * @return      
    179      * @author: yue_sun
    180      * @date:   2019年3月26日 上午8:22:55   
    181      */
    182     @SuppressWarnings("rawtypes")
    183     public static String joinForQuotationMarks ( List list )
    184     {
    185         StringBuilder strBuilder = new StringBuilder();
    186         String result = StringUtils.join(list, ",");
    187         // 当生成的参数不为空的时候, 做参数处理操作
    188         if (!isBlank(result))
    189         {
    190             strBuilder.append("'");
    191             strBuilder.append(StringUtils.replace(result, ",", "','"));
    192             strBuilder.append("'");
    193         }
    194         return result;
    195     }
    196 
    197     /**   
    198      * @Title: isBlank   
    199      * @Description: 校验str值是否为null或者空,包含字符串的null
    200      * @param str
    201      * @return      
    202      * @author: yue_sun 
    203      * @date:   2019年3月11日 下午6:52:38   
    204      */
    205     public static boolean isBlank ( String str )
    206     {
    207         return null == str || StringUtils.equals(str, "null") || StringUtils.isBlank(str);
    208     }
    209 }
  • 相关阅读:
    用JavaScript实现的将GB2312转换为UTF8编码
    一行内文本超出指定宽度溢出的处理
    JavaScript delete
    深入学习Enterprise Library for .NET Framework 2.0的Cache机制——分析篇
    CSS兼容技巧
    IE6,IE7,FF兼容CSS的差别及解决办法
    JavaScript获取当前文件全路径、当前目录、当前文件名
    DIV+CSS相对IE6 IE7和IE8兼容问题整理
    ie8兼容ie7css的方法和minheight的兼容问题
    Atitit.得到网络邻居列表java php c#.net python
  • 原文地址:https://www.cnblogs.com/symbol8888/p/10598207.html
Copyright © 2011-2022 走看看