精华内容
下载资源
问答
  • Java 8嵌套循环
    2021-03-08 21:56:16

    试着通过一个简单的例子来了解

    Java 8流语法.看看关于这个主题的其他类似问题,但找不到任何与我的例子相符的解决方案,并且对我有用.基本上我正在尝试使用两个嵌套循环重构以下代码段以使用新的流API:

    List filteredCars = new ArrayList<>();

    for (Car car : cars) {

    for (Wheel wheel : wheels) {

    if (car.getColor() == wheel.getColor() &&

    wheel.isWorking() == true ) {

    filteredCars.add(car);

    break;

    }

    }

    }

    return filteredCars;

    管理得出这个返回void:

    return cars.stream().forEach(

    car -> wheels.stream()

    .filter(wheel -> wheel.getColor() == car.getColor() &&

    wheel.isWorking() == true)

    .collect(Collectors.toList()));

    上面的流语法有什么问题,我错过了什么?

    更多相关内容
  • 主要介绍了Java8处理List的双层循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • java基础之嵌套循环

    千次阅读 2021-03-11 12:16:58
    一. for循环双层嵌套首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此...1.内外嵌套独立下面以一些简单常见题目为例:import java.util.Scanner;public class Demo7 {@Su...

    一. for循环双层嵌套

    首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环。(外循环控制行数,内循环控制每一行的个数)

    for循环的双层嵌套只要分为两种类型:内外嵌套独立、内外嵌套相关。

    1.内外嵌套独立

    下面以一些简单常见题目为例:

    import java.util.Scanner;

    public class Demo7 {

    @SuppressWarnings("resource")

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    /*

    * 嵌套循环

    * *****

    * *****

    * *****

    */

    for(int j=1;j<=5;j++){ //外循环 控制行数 j<=5成立时,继续

    for(int i=1;i<=5;i++){ //内循环 控制输出内容

    System.out.print("*");

    } //执行结束再返回外循环

    System.out.println();

    }

    /*

    *

    **

    ***

    ****

    */

    for(int i=1;i<=5;i++)

    {

    for(int j=1;j<=i;j++){

    System.out.print("*");

    }

    System.out.println();

    }

    /*

    1

    12

    123

    1234

    */

    // 当i=3,j输出1234

    for(int i=1;i<=5;i++)

    {

    for(int j=1;j<=i;j++){

    System.out.print(j);

    }

    System.out.println();

    }

    /*

    九九乘法表

    */

    for(int i=1;i<9;i++)

    {

    for(int j=1;j<=i;j++){

    System.out.print(j+"*"+i+"="+j*i+" ");

    }

    System.out.println();

    }

    }

    }

    打印结果(输入5为例):

    03fc16bf9c4de399474defa1b4aabbc6.png

    2. 内外嵌套相互关联

    内部循环依赖受控于外部循环。外部循环控制结果出现几行,内部循环控制每行出现字符的个数。

    int n=4;

    for(int i=0;i

    for(int j=0;j

    System.out.print("*");

    }

    System.out.print("\n");

    }

    外部循环很容易理解,我要4行,所以循环4次。然后,内部循环

    第一行(i=0)出现一次字符,内部循环一次(j=0;j<1;j++);

    第二行(i=1)出现二次字符,内部循环二次(j=0;j<2;j++);

    第三行(i=2)出现三次字符,内部循环三次(j=0;j<3;j++);

    第四行(i=3)出现四次字符,内部循环四次(j=0;j<4;j++);

    所以内部循环条件为(j=0;j

    以下一菱形为例:

    public class Demo8 {

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    /*

    * 打印实心菱形

    */

    for(int i=1;i<=4;i++)

    {

    //先输出空格 3 2 1 0

    for(int j=1;j<=4-i;j++){

    System.out.print(" "); //输出空格

    }

    //再输出*

    for(int j=1;j<=2*i-1;j++){

    System.out.print("*"); //输出*

    }

    System.out.println();

    }

    for(int i=1;i<=3;i++)

    {

    //先输出空格 1 2 3

    for(int j=1;j<=i;j++){

    System.out.print(" "); //输出空格

    }

    //再输出*

    for(int j=1;j<=7-2*i;j++){

    System.out.print("*"); //输出*

    }

    System.out.println();

    }

    /*

    * 打印空心菱形

    */

    for(int i=1;i<=4;i++)

    {

    //先输出空格 3 2 1 0

    for(int j=1;j<=4-i;j++){

    System.out.print(" "); //输出空格

    }

    //再输出*

    for(int j=1;j<=2*i-1;j++){

    if(j==1||j==2*i-1)

    System.out.print("*"); //输出*

    else

    System.out.print(" ");

    }

    System.out.println();

    }

    for(int i=1;i<=3;i++)

    {

    //先输出空格 1 2 3

    for(int j=1;j<=i;j++){

    System.out.print(" "); //输出空格

    }

    //再输出*

    for(int j=1;j<=7-2*i;j++){

    if(j==1||j==7-2*i)

    System.out.print("*"); //输出*

    else

    System.out.print(" ");

    }

    System.out.println();

    }

    }

    }

    见证奇迹的时刻到了,哈哈~~

    a5d5b6ffa49d2229b527bb4c1b6e8218.png

    标签:字符,java,内部,int,基础,嵌套,嵌套循环,循环,public

    来源: https://blog.csdn.net/weixin_42312310/article/details/100152839

    展开全文
  • 主要介绍了Java使用嵌套循环模拟ATM机取款业务操作,结合实例形式分析了Java模拟ATM机取款业务操作的相关流程控制、数值判断等操作技巧,需要的朋友可以参考下
  • 主要介绍了Java跳出多重嵌套循环,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • I try to understand the new Java 8 Streams and I tried for days to transfer nested foreach loops over collection in Java 8 Streams.Is it possible to refactor the following nested foreach loops includi...

    I try to understand the new Java 8 Streams and I tried for days to transfer nested foreach loops over collection in Java 8 Streams.

    Is it possible to refactor the following nested foreach loops including the if-conditions in Java-8-Streams?

    If yes what would it look like.

    ArrayList Inq = new ArrayList<>();

    TreeMap Quotations = new TreeMap<>();

    ArrayList tempInqAndQuot = new ArrayList<>();

    ArrayList tempQuotPos = new ArrayList<>();

    for (ClassInq simInq : this.Inq){

    if (!simInq.isClosed() && !simInq.isDenied()){

    for (Map.Entry Quot: Quotations.entrySet()){

    SalesQuot sapQuot = Quot.getValue();

    if (sapQuot.getInquiryDocumentNumber().compareTo(simInq.getSapInquiryNumber()) == 0){

    simInq.setSAPQuotationNumber(sapQuot.getQuotationDocumentNumber());

    tempInqAndQuot.add(simInq);

    for (Map.Entry quotp : sapQuot.getPosition().entrySet()){

    tempQuotPos.add(quotp.getValue());

    }

    }

    }

    }

    }

    Thanks a lot for your help.

    BR

    解决方案

    First, try to adhere to the Java naming conventions, as your upper case variable names make it really hard to read your code. Second, it’s a good thing that you want to learn about Stream API but you should not ignore the basics of the pre-Java 8 Collection APIs.

    It’s not useful to iterate over an entrySet() when you are only interested in either, keys or values. You do it two times within a small piece of code.

    At the first appearance you can replace

    for (Map.Entry Quot: Quotations.entrySet()){

    SalesQuot sapQuot = Quot.getValue();

    with the simpler

    for (SalesQuot sapQuot: Quotations.values()){

    At the second, the entire

    for(Map.Entry quotp: sapQuot.getPosition().entrySet()){

    tempQuotPos.add(quotp.getValue());

    }

    can be replaced by

    tempQuotPos.addAll(sapQuot.getPosition().values());

    Thus even without streams, your code can be simplified to

    for (ClassInq simInq : this.Inq){

    if (!simInq.isClosed() && !simInq.isDenied()){

    for (SalesQuot sapQuot: Quotations.values()){

    if (sapQuot.getInquiryDocumentNumber().compareTo(simInq.getSapInquiryNumber()) == 0){

    simInq.setSAPQuotationNumber(sapQuot.getQuotationDocumentNumber());

    tempInqAndQuot.add(simInq);

    tempQuotPos.addAll(sapQuot.getPosition().values());

    }

    }

    }

    }

    though it’s still not clear what it is supposed to do and whether it’s correct. Besides the errors and suspicions named in the comments to your question, modifying the incoming values (esp. from the outer loop) does not look right.

    It’s also not clear why you are using ….compareTo(…)==0 rather than equals.

    However, it can be straight-forwardly rewritten to use streams without changing any of the code’s logic:

    this.Inq.stream().filter(simInq -> !simInq.isClosed() && !simInq.isDenied())

    .forEach(simInq -> Quotations.values().stream().filter(sapQuot ->

    sapQuot.getInquiryDocumentNumber().compareTo(simInq.getSapInquiryNumber())==0)

    .forEach(sapQuot -> {

    simInq.setSAPQuotationNumber(sapQuot.getQuotationDocumentNumber());

    tempInqAndQuot.add(simInq);

    tempQuotPos.addAll(sapQuot.getPosition().values());

    })

    );

    Still, I recommend cleaning up the original logic first before rewriting it for using other APIs. The stream form would greatly benefit from a more precise definition of what to achieve.

    展开全文
  • 包括while循环、do-while循环、 for循环、嵌套循环、求最大公约数、计算销售额、显示数字构成的金字塔、关键字break和continue、语句标号以及利用标号中止循环(可选)、显示素数(可选) 。
  • java代码-for循环嵌套练习。
  • 一 九九乘法表: 二 嵌套循环

    一 九九乘法表:

    二 嵌套循环:

     

    三 嵌套调用:

    展开全文
  • Java的循环结构及嵌套循环Java的循环结构while 循环结构do...while 循环结构for 循环结构Java嵌套循环概念循环控制语句breakcontinuereturnforeach 循环Java8集合自带的foreach以及流的foreachJava的循环结构Java ...
  • 使用Java 8 Lambda简化嵌套循环

    千次阅读 2020-05-28 14:35:39
    对于每个经常需要在Java 8(或更高版本)中使用多维数组的人来说,这只是一个快速技巧。 在这种情况下,您可能经常以类似于以下代码的结尾: float[][]values=... for(inti=0;i<values.length;i++){ for(intk=...
  • JAVA中退出嵌套循环

    2022-01-10 20:55:01
    在一个嵌套循环的内循环中想要结束外循环,可以在想要退出的指定外循环中加上"OUT:",并且在内循环中加上"break OUT;"即可结束外循环,如下: int[] arr1 = new int[]{1, 2, 3, 4}; int[] arr2 = new int[]{1, 3, 5,...
  • Java优化for循环嵌套的高效率方法

    千次阅读 2021-02-12 23:59:03
    前几天有人问过我一个问题,就是两个嵌套for循环执行效率的问题,问有什么好的办法替换。当时我想了想,实在想不起来,哎,惭愧!!! 请教了答案,恍然大悟。比如:两个list中分别装有相同的对象数据。 list1中有3...
  • Java跳出多重嵌套循环

    2020-12-22 18:36:41
    java里面,我们知道有goto这个关键字,但是实际却没有啥作用,这让我们不像在c/c++里面能够随便让程序跳到那去执行,而break只能跳出当前的一个循环语句,如果要跳出多个循环体那么该怎么办呢。  我们可以这样...
  • Java嵌套循环

    千次阅读 2019-07-03 22:54:07
    循环过后就是嵌套循环了,这一篇讲几个练习题。 概念 嵌套循环:一个循环作为另外一个循环的循环体。循环中包含了其他的循环。 特点:外层循环迭代一次,内层循环执行一遍。 内层循环循环体执行的次数 ,等于 各层...
  • Java嵌套循环
  • java lambda循环 对于每个经常需要在Java 8(或更高版本)中使用多维数组的人来说,这只是一个快速技巧。 在这种情况下,您可能经常会以类似于以下代码的结尾: float[][]values=... for(inti=0;i<values....
  • 给最外侧的循环起一个名字,代码如下图 在没打断循环前,控制台持续输出 哈哈哈 打断循环以后只输出一次 哈哈 ,就停止了 单纯的break只会打断最内层的循环,外侧死循环还在,控制台还是会持续输出 哈哈哈,...
  • for循环嵌套使用,打印空心金字塔,直角三角形。
  • 主要介绍了Java跳出多重嵌套循环过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 在外层循环的每次迭代中,变量factorial都被初始化为1,并且嵌套的内循环使用计数器 j 控制计算当前i的阶乘, j 的变化范围从2到i的当前值。最后,在进入外层循环的迭代前,显示factoial的结果。 另一种嵌套方法: ...
  • Java嵌套While循环

    2021-02-27 11:22:20
    Greetings Stack Overflow用户,今晚我来找你,帮助我创建一个Java程序.我对Java比较新,所以请原谅我对这个主题的无知.我制作了一个Java程序,它是一个“Rock”“Paper”“Scissors”游戏,其中一个语句中似乎有错误....
  • java代码-使用for循环嵌套实现99乘法表。
  • Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如: ok: for(int i=0;i<10;i++) { for(int j=0;j<10;j++) ...
  • 1.跳出所有循环 public static void main(String[] args) { outerloop: for(int j=0; j<3; j++){ for (int i=0; i<3; i++){ if(i==1){ break outerloop; } System.out.println("i:"+i); }
  • 应用场景:当有两个相同list,或者部门内容相同,要比对两个list,每个list的大小都为1万,两层循环就是1万成1万次 list1.forEach(l1->{ list2.forEach(l2->{ //循环1万成1万次数 }); }); 我们的目的是优化...
  • 做法:java提供了“标记”这一功能,在嵌套循环最外层设置一标记,然后break 标记,就能跳出多层嵌套循环 代码如下: @Test //测试设置标记跳出多层循环 public void Test() { a: //设置一个标记,break a 可以...
  • 我正在研究一个Java Web应用程序,并且对我的HTML表格...在while循环中嵌套循环 - Java我的代码看起来是这样的:现在...if (patcases != null && patcases.size() > 0) {Iterator itr1 = patcases.itera...
  • java代码-java-循环嵌套

    2021-07-16 16:52:33
    java代码-java-循环嵌套

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 117,778
精华内容 47,111
关键字:

java8 嵌套循环

java 订阅