您好,登錄后才能下訂單哦!
利用java如何實現獲取List集合的最大值?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
取List集合中最大的日期, 可以用Date max = Collections.max(dateList);, 傳入一個日期集合, 就可以獲取, 工作中有這個需求, 就查找到這個,
代碼如下
} else { /** 獲取此專題下的所有內容的最新時間 */ Long featureId = this.communityFeatureMapper.selectFeatureIdByLabelId(labelId); List<CommunityFeatureRelation> communityFeatureRelationList = this.communityFeatureRelationMapper.selectByFeatureId(featureId); List<Date> dateList = Lists.newArrayList(); for (CommunityFeatureRelation communityFeatureRelation : communityFeatureRelationList) { CommunityProduct communityProduct =this.communityProductMapper.selectContentIdByProductIdAndType(communityFeatureRelation.getProductId(),BaseConstans.ARTICLE_YIFABU); CommunityArticle communityArticle = this.communityArticleMapper.selectByPrimaryKey(communityProduct.getContentId()); dateList.add(communityArticle.getReleaseTime()); } if (!CollectionUtils.isEmpty(dateList)) { Date max = Collections.max(dateList); /** 內容->添加專題-此專題下的合伙人getReleaseTime 更新, 若此專題下不存在合伙人, 則不更新 */ Long productId = this.communityProductMapper.selectIdByContentIdAndType(featureId, BaseConstans.FOUR); CommunityPartner communityPartner = this.communityPartnerMapper.selectByPartnerId(productId); if (!StringUtils.isEmpty(communityPartner)) { communityPartner.setCreateTime(max); communityPartnerMapper.updateByPrimaryKeySelective(communityPartner); } } CommunityProduct communityProduct = this.communityProductMapper.selectContentIdByProductIdAndType(prodId, proType);
補充知識:java自定義List中的sort()排序方法,用于日期排序
1、問題描述
List是java中一個有序可重復的的集合,其中自帶的.sort()排序方法,該方法在針對純數字類型List集合排序的時候很有效。但是對于裝入其他類型的List集合,自帶的sort()方法排序我們很難控制,比如一個日期集合的排序。
2、解決方法:
java中List允許我們自定義sort()排序方法,以下自定義了List集合的sort排序方法,用于對一個字符串類型的日期集合進行排序。
//待排序的集合 List<String> list=new ArrayList<String>(); list.add("2019-06"); list.add("2019-11"); list.add("2019-02"); list.add("2019-09"); list.add("2019-05"); //自定義list排序,集合數據(月份)按升序排序; final SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM"); Collections.sort(list, new Comparator<String>(){ @Override public int compare(String month2, String month3) { int mark = 1; try { Date date1 = sdft.parse(month2); Date date2 = sdft.parse(month3); if(date1.getTime() < date2.getTime()){ mark = -1;//調整順序,-1為不需要調整順序; } if(month2.equals(month3)){ mark = 0; } } catch (ParseException e) { LOG.error("日期轉換異常", e); e.printStackTrace(); } return mark; } //compare });
3、其他
另外java兩個日期類型的對象也可以用如下方法進行比較。
Date() date1=new Date(); Date() date2=new SimpleDateFormat("yyyy-MM-dd").parse("2019-06-11"); Boolean flag; if(date1.before(date2)){ flag=true; } a.before(b);該方法是判斷a日期是否小于b日期,返回的是一個布爾類型結果。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。