mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +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 cn.hutool.core.util.ObjUtil;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.OptionalDouble;
|
||||||
import java.util.Spliterator;
|
import java.util.Spliterator;
|
||||||
import java.util.function.*;
|
import java.util.function.*;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@ -264,6 +265,74 @@ public class EasyStream<T> extends AbstractEnhancedWrappedStream<T, EasyStream<T
|
|||||||
return new EasyStream<>(stream);
|
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());
|
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