常用工具
1.Object转Map
Field[ ] fields= Object. getClass ( ) . getDeclaredFields ( ) ;
try {
for ( Field field : fields) {
field. setAccessible ( true ) ;
String name = new String ( field. getName ( ) ) ;
map. put ( name, field. get ( Object) ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
}
2.Map转Object
public static < T> T parseMap2Object ( Map< String, Object> paramMap, Class< T> cls) {
return JSONObject. parseObject ( JSONObject. toJSONString ( paramMap) , cls) ;
}
3.List去重
public List removeDuplicate ( List list) {
HashSet h = new HashSet ( list) ;
list. clear ( ) ;
list. addAll ( h) ;
return list;
}
4.List去重
private static List filterListByName ( List< Map> list) {
if ( null == list || list. size ( ) <= 0 ) {
return list;
} else {
for ( int i = 0 ; i < list. size ( ) ; i++ ) {
Map map1 = list. get ( i) ;
if ( map1 != null) {
for ( int j = i + 1 ; j < list. size ( ) ; j++ ) {
if ( map1. get ( "pm_id" ) . equals ( list. get ( j) . get ( "pm_id" ) ) ) {
list. remove ( j) ;
j-- ;
}
}
}
}
return list;
}
}
5.List排序
Collections. sort ( list, new Comparator < Map< String, Double> > ( ) {
public int compare ( Map< String, Double> o1, Map< String, Double> o2) {
return o2. get ( "source" ) . compareTo ( o1. get ( "source" ) ) ;
}
} ) ;
6.List排序
Collections. sort ( list, new Comparator < Object> ( ) {
@Override
public int compare ( Object o1, Object o2) {
int i = o1. getScore ( ) - o2. getScore ( ) ;
return i;
}
} ) ;
7. 计算天数差
public int daysCount ( String beginTime, String endTime) {
if ( beginTime. equals ( "" ) || endTime. equals ( "" ) ) {
DateFormat format = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
String format1 = format. format ( new Date ( ) ) ;
beginTime = format1;
String s = addMonthOrDay ( beginTime, 1 , 1 ) ;
endTime = s;
}
DateFormat format = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
int days = 0 ;
try {
long beginTimeL = format. parse ( beginTime) . getTime ( ) ;
long endTimeL = format. parse ( endTime) . getTime ( ) ;
days = ( int ) ( ( endTimeL - beginTimeL) / ( 1000 * 60 * 60 * 24 ) ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
}
return days + 1 ;
}
8.向后推迟一天或者一个月
public String addMonthOrDay ( String s, int n, Integer type) {
try {
SimpleDateFormat sdf = null;
Calendar cd = null;
if ( type == 1 ) {
sdf = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
cd = Calendar. getInstance ( ) ;
cd. setTime ( sdf. parse ( s) ) ;
cd. add ( Calendar. DATE, n) ;
} else {
sdf = new SimpleDateFormat ( "yyyy-MM" ) ;
cd = Calendar. getInstance ( ) ;
cd. setTime ( sdf. parse ( s) ) ;
cd. add ( Calendar. MONTH, n) ;
}
return sdf. format ( cd. getTime ( ) ) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
return null;
}
}
9.保留两位小数
public double subDouble ( double sou) {
DecimalFormat df = new DecimalFormat ( "#.00" ) ;
String source = df. format ( sou) ;
Double DSource = Double. valueOf ( source) ;
return DSource;
}
10.计算两个月之间月份,返回数组
public List< String> getMonth ( String beginTime, String endTime) throws Exception {
Date startDate = null;
if ( beginTime != null && ! "" . equals ( beginTime) ) {
startDate = new SimpleDateFormat ( "yyyy-MM" ) . parse ( beginTime) ;
}
Date endDate = null;
if ( endTime != null && ! "" . equals ( endTime) ) {
endDate = new SimpleDateFormat ( "yyyy-MM" ) . parse ( endTime) ;
}
Calendar calendar = Calendar. getInstance ( ) ;
calendar. setTime ( startDate) ;
int startYear = calendar. get ( Calendar. YEAR) ;
int startMonth = calendar. get ( Calendar. MONTH) ;
calendar. setTime ( endDate) ;
int endYear = calendar. get ( Calendar. YEAR) ;
int endMonth = calendar. get ( Calendar. MONTH) ;
List< String> list = new ArrayList < String> ( ) ;
for ( int i = startYear; i <= endYear; i++ ) {
String date = "" ;
if ( startYear == endYear) {
for ( int j = startMonth; j <= endMonth; j++ ) {
if ( j < 9 ) {
date = i + "-0" + ( j + 1 ) ;
} else {
date = i + "-" + ( j + 1 ) ;
}
list. add ( date) ;
}
} else {
if ( i == startYear) {
for ( int j = startMonth; j < 12 ; j++ ) {
if ( j < 9 ) {
date = i + "-0" + ( j + 1 ) ;
} else {
date = i + "-" + ( j + 1 ) ;
}
list. add ( date) ;
}
} else if ( i == endYear) {
for ( int j = 0 ; j <= endMonth; j++ ) {
if ( j < 9 ) {
date = i + "-0" + ( j + 1 ) ;
} else {
date = i + "-" + ( j + 1 ) ;
}
list. add ( date) ;
}
} else {
for ( int j = 0 ; j < 12 ; j++ ) {
if ( j < 9 ) {
date = i + "-0" + ( j + 1 ) ;
} else {
date = i + "-" + ( j + 1 ) ;
}
list. add ( date) ;
}
}
}
}
return list;
}