jjzjj

mapToInt

全部标签

Java 8 mapToInt 和 toIntFunction 示例

我正在测试Java(Java8)的新主要更新,它非常有趣。我正在使用流;特别是我正在使用这个简单的代码。privatevoidgetAvg(){finalArrayListpersons=newArrayList(Arrays.asList(newMyPerson("Ringo","Starr"),newMyPerson("John","Lennon"),newMyPerson("Paul","Mccartney"),newMyPerson("George","Harrison")));finalOptionalDoubleaverage=persons.stream().filter

java - 为什么Java8中没有Optional.mapToInt()?

在Java8流中,我可以使用mapToInt方法创建一个IntStream,它会为某些操作返回OptionalInt(例如findFirst).为什么Optional中没有类似的内容?inti=Stream.of("1")//justasanexample.mapToInt(Integer::parseInt)//mapToIntexistsforstreams.findFirst()//thisevenreturnsanOptionalInt!.getAsInt();//quitehandyintj=Optional.of("1")//sameexample.map(Integer:

java - 如何从 Set<Integer> 创建 IntStream?

我目前这样做:Setintegers=...//sourcedfromelsewhereincodeIntStreamintStream=integers.stream().mapToInt(value->value);必须将值映射到值以转换Stream似乎是多余的至IntStream.有没有办法在没有冗余的情况下做到这一点mapToInt(...)部分? 最佳答案 不,你必须使用.mapToInt(value->value)或者(对我来说更好看).mapToInt(Integer::intValue).作为Stream是通用类,它

java - 为什么 OptionalInt 类中没有 mapToInt() ?

IntStream类有map()、mapToObj()、mapToLong()和mapToDouble()方法,但是OptionalInt类中似乎缺少这些方法。缺少这些方法是否有充分的理由? 最佳答案 你可以相当迟钝地做OptionalIntoi=OptionalInt.of(1);oi.ifPresent(i->IntStream.of(i).map(j->j+1).forEach(System.out::println));但是不清楚为什么OptionalInt没有与IntStream相同的方法,尽管我注意到Optional有的

java - 在 mapToInt 之后调用 map 有什么好处吗?

我正在尝试计算列表中值的平方和。以下是三个变体,它们都计算所需的值。我想知道哪一个是最有效的。我期待第三个由于自动装箱仅完成一次,因此效率更高。//sumofsquaresintsum=list.stream().map(x->x*x).reduce((x,y)->x+y).get();System.out.println("sumofsquares:"+sum);sum=list.stream().mapToInt(x->x*x).sum();System.out.println("sumofsquares:"+sum);sum=list.stream().mapToInt(x->x

java - Java 8 mapToInt ( mapToInt(e -> e) ) 如何准确地提高性能?

我正在阅读“Java8Lambdas”这本书,在某些时候作者说“尽可能使用原始专用函数是个好主意,因为性能优势。”。他在这里指的是mapToInt、mapToLong等老实说,我不知道性能从何而来。让我们考虑一个例子://Considerthisaveryverylonglist,withalotofelementsListlist=Arrays.asList(1,2,3,4);//sumit,flavour1intsum1=list.stream().reduce(0,(acc,e)->acc+e).intValue();//sumit,flavour2intsum2=list.st

java - Collectors.summingInt() 与 mapToInt().sum()

当您想对流中的整数值求和时,主要有两种方法:ToIntFunctionmapFunc=...intsum=stream().collect(Collectors.summingInt(mapFunc))intsum=stream().mapToInt(mapFunc).sum()第一个涉及对返回的整数进行装箱和拆箱,但第二个涉及一个额外的步骤。哪个更高效/更清晰? 最佳答案 您正在查看两个不同用例的交集。使用mapToInt(...)允许您在终端操作之前链接其他IntStream操作。相反,Collectors.summingInt