德州住房和城乡建设局网站,网络平面广告设计,网站建设软件哪个好,金融网站建设多少钱我想使用lambda表达式而不是for循环生成数字列表.所以让我们想要生成一个100以下的所有三角形数字的列表.三角数字是以下公式的数字#xff1a;(n * n n)/ 2这样做最好的方法是什么#xff1f;目前我有这个#xff1a;Stream.iterate(1,n - n 1).limit(100).map(n -(n * n n)/ 2这样做最好的方法是什么目前我有这个Stream.iterate(1,n - n 1).limit(100).map(n - (n * n n) / 2).filter(a - a 100).map(a - a ).collect(Collectors.joining(,,Numbers: ,.));但这似乎不必要地过度的计算量.我迭代n超过1到100(因为假设我不知道n的最大值是多少),那么我映射该列表的三角数字函数,然后我检查哪些数字在100以下是否有更有效的方式在这样做另外我可以使用Stream的iterate函数生成三角形数字,而不是使用iterate,limit,然后映射编辑所以这里的要点是一旦三角形数字之一超过100,一个数字的计算如何停止通常我会这样写ArrayList triangles new ArrayList();for (int n1;true;n) {int num (n*nn)/2;if (num100) break;triangles.add(num);}一旦三角形数字超过100,那就停止,这是非常有效的;如何在lambda表达式中保留这个效率