mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
添加针对 int long double类型的sum和avg方法
This commit is contained in:
parent
5753444de2
commit
b1e9f263bc
@ -5,6 +5,7 @@ import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.OptionalDouble;
|
||||
import java.util.Spliterator;
|
||||
import java.util.function.*;
|
||||
import java.util.stream.Stream;
|
||||
@ -264,6 +265,74 @@ public class EasyStream<T> extends AbstractEnhancedWrappedStream<T, EasyStream<T
|
||||
return new EasyStream<>(stream);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 计算int类型总和
|
||||
*
|
||||
* @param mapper 映射
|
||||
* @return int
|
||||
*/
|
||||
public int sum(ToIntFunction<? super T> mapper) {
|
||||
return stream.mapToInt(mapper).sum();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算long类型总和
|
||||
*
|
||||
* @param mapper 映射
|
||||
* @return long
|
||||
*/
|
||||
public long sum(ToLongFunction<? super T> mapper) {
|
||||
return stream.mapToLong(mapper).sum();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算double总和
|
||||
*
|
||||
* @param mapper 映射器
|
||||
* @return double
|
||||
*/
|
||||
public double sum(ToDoubleFunction<? super T> mapper) {
|
||||
return stream.mapToDouble(mapper).sum();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 计算int平均值
|
||||
*
|
||||
* @param mapper 映射器
|
||||
* @return {@link Integer}
|
||||
*/
|
||||
public OptionalDouble avg(ToIntFunction<? super T> mapper) {
|
||||
return stream.mapToInt(mapper).average();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算double平均值
|
||||
*
|
||||
* @param mapper 映射
|
||||
* @return {@link OptionalDouble}
|
||||
*/
|
||||
public OptionalDouble avg(ToDoubleFunction<? super T> mapper) {
|
||||
return stream.mapToDouble(mapper).average();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算double平均值
|
||||
*
|
||||
* @param mapper 映射
|
||||
* @return {@link OptionalDouble}
|
||||
*/
|
||||
public OptionalDouble avg(ToLongFunction<? super T> mapper) {
|
||||
return stream.mapToLong(mapper).average();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 建造者
|
||||
*
|
||||
|
@ -433,4 +433,13 @@ public class EasyStreamTest {
|
||||
Assert.assertTrue(EasyStream.of(1).isNotEmpty());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testIntSum() {
|
||||
int sum = EasyStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).sum(Integer::intValue);
|
||||
Assert.assertEquals(sum,55);
|
||||
double doubleSum = EasyStream.of(1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.10).sum(Double::doubleValue);
|
||||
Assert.assertEquals(doubleSum,59.6);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user