麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Java > 正文

JAVA集合框架工具類自定義Collections集合方法

2024-07-14 08:43:06
字體:
供稿:網(wǎng)友

項(xiàng)目中有需要多次統(tǒng)計(jì) 某些集合中 的某個(gè)屬性值,所以考慮封裝一個(gè)方法,讓其其定義實(shí)現(xiàn)計(jì)算方式。 話不多說,看代碼:

1、封裝的自定義集合工具類:CollectionsCustom

package com.test.util;import java.util.Collection;import org.apache.commons.collections.CollectionUtils;/** * 自定義集合處理類 */public class CollectionsCustom {   /**   * 將傳入的collection內(nèi)對(duì)象進(jìn)行計(jì)算后得出結(jié)果   * @param original    計(jì)算前collection   * @param reduceFunction 計(jì)算方式   * @param initValue   計(jì)算結(jié)果初始值   * @param <Input>    collection對(duì)象類型   * @param <Output>    結(jié)果類型   * @return   */  public static <Input, Output> Output reduce(Collection<Input> original, Output initValue, ReduceFunction<Input, Output> reduceFunction) {    Output result = initValue;    if (CollectionUtils.isEmpty(original)) {      return result;    }    if (reduceFunction == null) {      return result;    }    for (Input input : original) {      result = reduceFunction.apply(input, result);    }    return result;  }  /**   * 自定義計(jì)算接口   * @param <Input>   * @param <Result>   */  public interface ReduceFunction<Input, Result> {    Result apply(Input input, Result lastResult);  }}

2、測(cè)試類TestCollections

package com.test;import java.math.BigDecimal;import java.util.Arrays;import java.util.List;import com.test.util.CollectionsCustom;public class TestCollection { private static List<User> list = Arrays.asList(  new User("張三", BigDecimal.valueOf(35.6), 18),  new User("李四", BigDecimal.valueOf(85), 30),  new User("趙六", BigDecimal.valueOf(66.55), 25)); public static void main(String[] args) { //統(tǒng)計(jì)集合內(nèi)分?jǐn)?shù)之和 testTotalScore(); //統(tǒng)計(jì)集合內(nèi)年齡之和 testTotalAge(); } private static void testTotalScore(){ //統(tǒng)計(jì)集合內(nèi)分?jǐn)?shù)之和 BigDecimal totalScore = CollectionsCustom.reduce(list, BigDecimal.ZERO, new CollectionsCustom.ReduceFunction<User, BigDecimal>() {  @Override  public BigDecimal apply(User input, BigDecimal lastResult) {  // TODO Auto-generated method stub  return lastResult.add(input.getScore());  } }); System.out.println("總共分?jǐn)?shù):" + totalScore); } private static void testTotalAge(){ //統(tǒng)計(jì)集合內(nèi)年齡之和 Integer totalAge = CollectionsCustom.reduce(list, 0, new CollectionsCustom.ReduceFunction<User, Integer>() {  @Override  public Integer apply(User input, Integer lastResult) {  // TODO Auto-generated method stub  return lastResult += input.getAge();  } }); System.out.println("總共年齡:" + totalAge); } static class User{ private String userName; //姓名 private BigDecimal score;//分?jǐn)?shù) private Integer age; public String getUserName() {  return userName; } public void setUserName(String userName) {  this.userName = userName; } public BigDecimal getScore() {  return score; } public void setScore(BigDecimal score) {  this.score = score; } public Integer getAge() {  return age; } public void setAge(Integer age) {  this.age = age; } public User(String userName, BigDecimal score, Integer age) {  super();  this.userName = userName;  this.score = score;  this.age = age; } public User() {  // TODO Auto-generated constructor stub } }}

3、測(cè)試輸出結(jié)果:

總共分?jǐn)?shù):187.15
總共年齡:73

這里如果傳入的是封裝類型Integer等,最好自己做下非空處理。相信高質(zhì)量的封裝代碼能為你自己加分的!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品久久久久永久免费 | 国产一有一级毛片视频 | 久久久三区 | 一级做a爱片毛片免费 | 91午夜免费视频 | 一级性色 | 成人毛片100部免费观看 | 国产精品久久久久久久久久iiiii | 99精品欧美一区二区 | 成人在线视频精品 | 欧美一级不卡视频 | 欧美视频一区二区三区四区 | 二级大黄大片高清在线视频 | 国产激情精品一区二区三区 | 在线观看中文字幕av | 沉沦的校花奴性郑依婷c到失禁 | 亚洲一区二区三区精品在线观看 | 性片免费看 | 黄色一级片在线观看 | 国产99久久精品一区二区300 | 激情久久一区二区 | 精品中文视频 | 亚洲国产中文字幕 | wwwxxx国产 | 国产正在播放 | 国产一区影院 | 中文字幕在线观看免费视频 | 欧美三区在线 | 国产婷婷一区二区三区 | 国产成人强伦免费视频网站 | 91精品国产综合久久久动漫日韩 | 龙的两根好大拔不出去h | 国产黄色录像片 | 国产三级在线视频观看 | 亚洲一区国产二区 | 丁香天堂网 | 久久久久久亚洲国产精品 | 国产精品久久久久久久亚洲按摩 | 国产91在线播放九色 | 免费视频aaa| 久久久午夜电影 |