Running if condition after all three items are updated












2















I have a list which is supposed to receive values from several hosts periodically and do some operations on these values.



List<Integer> loadList = new ArrayList<>(3);
if ((dstIp.toString().equals("10.0.0.1")
&& udp.getPayload() != null) {

loadList.add(0, intLoad1);
}
else if ((dstIp.toString().equals("10.0.0.2")
&& udp.getPayload() != null) {

loadList.add(1, intLoad2);
}
else if ((dstIp.toString().equals("10.0.0.3")
&& udp.getPayload() != null) {

loadList.add(2, intLoad3);
}

if (!loadList.isEmpty() && !loadList.contains(null)) {
int sum = loadList.stream().mapToInt(Integer::intValue).sum();
System.out.println("---- Sum: "+sum);
double averageLoad = ((double) sum) / loadList.size();
}


In my code the 4th if condition (I mean if (!loadList.isEmpty() && !loadList.contains(null))) will run every time it receives a new value, but I'm trying to change it so that it will run after the end of each period (when all the three elements in the list are updated). I mean I want it to run only when all the three load value are received (so that I will find the average value of the newly received values).



I searched for a solution but I didn't find anything. Is it possible?










share|improve this question























  • Why don't you create a separate method that will be called after each value added in the list, and checks if all the 3 values were added in the list... if yes -> you do the average. Or even better, call the method only when you have the 3 values in the current list -> that means that instead of the last if you just check if the list has the 3 elements -> if yes, you do the average.

    – Andrea Calin
    Nov 19 '18 at 19:56













  • @AndreaCalin In each period each of these elements are updated. My current code will find the average between 3 numbers regardless of whether they are updated or not. For example list = [a1 a2 a3], avg = (a1 + a2 + a3)/3. Now for example the first element is updated list = [b1 a2 a3], my code will find the average like this avg = (b1 a2 a3)/3, but I want it to find the average when all the three elements are updated ( I mean list = [b1 b2 b3])

    – helen
    Nov 19 '18 at 20:07













  • Then just use some flags to determine when the 3 values were all updated.

    – Andrea Calin
    Nov 19 '18 at 20:08











  • "when all the three elements in the list are updated" - Instead of if (!loadList.isEmpty() && !loadList.contains(null)) {...} check for if (loadList.size() == 3 {...}

    – LuCio
    Nov 19 '18 at 20:44


















2















I have a list which is supposed to receive values from several hosts periodically and do some operations on these values.



List<Integer> loadList = new ArrayList<>(3);
if ((dstIp.toString().equals("10.0.0.1")
&& udp.getPayload() != null) {

loadList.add(0, intLoad1);
}
else if ((dstIp.toString().equals("10.0.0.2")
&& udp.getPayload() != null) {

loadList.add(1, intLoad2);
}
else if ((dstIp.toString().equals("10.0.0.3")
&& udp.getPayload() != null) {

loadList.add(2, intLoad3);
}

if (!loadList.isEmpty() && !loadList.contains(null)) {
int sum = loadList.stream().mapToInt(Integer::intValue).sum();
System.out.println("---- Sum: "+sum);
double averageLoad = ((double) sum) / loadList.size();
}


In my code the 4th if condition (I mean if (!loadList.isEmpty() && !loadList.contains(null))) will run every time it receives a new value, but I'm trying to change it so that it will run after the end of each period (when all the three elements in the list are updated). I mean I want it to run only when all the three load value are received (so that I will find the average value of the newly received values).



I searched for a solution but I didn't find anything. Is it possible?










share|improve this question























  • Why don't you create a separate method that will be called after each value added in the list, and checks if all the 3 values were added in the list... if yes -> you do the average. Or even better, call the method only when you have the 3 values in the current list -> that means that instead of the last if you just check if the list has the 3 elements -> if yes, you do the average.

    – Andrea Calin
    Nov 19 '18 at 19:56













  • @AndreaCalin In each period each of these elements are updated. My current code will find the average between 3 numbers regardless of whether they are updated or not. For example list = [a1 a2 a3], avg = (a1 + a2 + a3)/3. Now for example the first element is updated list = [b1 a2 a3], my code will find the average like this avg = (b1 a2 a3)/3, but I want it to find the average when all the three elements are updated ( I mean list = [b1 b2 b3])

    – helen
    Nov 19 '18 at 20:07













  • Then just use some flags to determine when the 3 values were all updated.

    – Andrea Calin
    Nov 19 '18 at 20:08











  • "when all the three elements in the list are updated" - Instead of if (!loadList.isEmpty() && !loadList.contains(null)) {...} check for if (loadList.size() == 3 {...}

    – LuCio
    Nov 19 '18 at 20:44
















2












2








2


0






I have a list which is supposed to receive values from several hosts periodically and do some operations on these values.



List<Integer> loadList = new ArrayList<>(3);
if ((dstIp.toString().equals("10.0.0.1")
&& udp.getPayload() != null) {

loadList.add(0, intLoad1);
}
else if ((dstIp.toString().equals("10.0.0.2")
&& udp.getPayload() != null) {

loadList.add(1, intLoad2);
}
else if ((dstIp.toString().equals("10.0.0.3")
&& udp.getPayload() != null) {

loadList.add(2, intLoad3);
}

if (!loadList.isEmpty() && !loadList.contains(null)) {
int sum = loadList.stream().mapToInt(Integer::intValue).sum();
System.out.println("---- Sum: "+sum);
double averageLoad = ((double) sum) / loadList.size();
}


In my code the 4th if condition (I mean if (!loadList.isEmpty() && !loadList.contains(null))) will run every time it receives a new value, but I'm trying to change it so that it will run after the end of each period (when all the three elements in the list are updated). I mean I want it to run only when all the three load value are received (so that I will find the average value of the newly received values).



I searched for a solution but I didn't find anything. Is it possible?










share|improve this question














I have a list which is supposed to receive values from several hosts periodically and do some operations on these values.



List<Integer> loadList = new ArrayList<>(3);
if ((dstIp.toString().equals("10.0.0.1")
&& udp.getPayload() != null) {

loadList.add(0, intLoad1);
}
else if ((dstIp.toString().equals("10.0.0.2")
&& udp.getPayload() != null) {

loadList.add(1, intLoad2);
}
else if ((dstIp.toString().equals("10.0.0.3")
&& udp.getPayload() != null) {

loadList.add(2, intLoad3);
}

if (!loadList.isEmpty() && !loadList.contains(null)) {
int sum = loadList.stream().mapToInt(Integer::intValue).sum();
System.out.println("---- Sum: "+sum);
double averageLoad = ((double) sum) / loadList.size();
}


In my code the 4th if condition (I mean if (!loadList.isEmpty() && !loadList.contains(null))) will run every time it receives a new value, but I'm trying to change it so that it will run after the end of each period (when all the three elements in the list are updated). I mean I want it to run only when all the three load value are received (so that I will find the average value of the newly received values).



I searched for a solution but I didn't find anything. Is it possible?







java if-statement






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 '18 at 19:50









helenhelen

302217




302217













  • Why don't you create a separate method that will be called after each value added in the list, and checks if all the 3 values were added in the list... if yes -> you do the average. Or even better, call the method only when you have the 3 values in the current list -> that means that instead of the last if you just check if the list has the 3 elements -> if yes, you do the average.

    – Andrea Calin
    Nov 19 '18 at 19:56













  • @AndreaCalin In each period each of these elements are updated. My current code will find the average between 3 numbers regardless of whether they are updated or not. For example list = [a1 a2 a3], avg = (a1 + a2 + a3)/3. Now for example the first element is updated list = [b1 a2 a3], my code will find the average like this avg = (b1 a2 a3)/3, but I want it to find the average when all the three elements are updated ( I mean list = [b1 b2 b3])

    – helen
    Nov 19 '18 at 20:07













  • Then just use some flags to determine when the 3 values were all updated.

    – Andrea Calin
    Nov 19 '18 at 20:08











  • "when all the three elements in the list are updated" - Instead of if (!loadList.isEmpty() && !loadList.contains(null)) {...} check for if (loadList.size() == 3 {...}

    – LuCio
    Nov 19 '18 at 20:44





















  • Why don't you create a separate method that will be called after each value added in the list, and checks if all the 3 values were added in the list... if yes -> you do the average. Or even better, call the method only when you have the 3 values in the current list -> that means that instead of the last if you just check if the list has the 3 elements -> if yes, you do the average.

    – Andrea Calin
    Nov 19 '18 at 19:56













  • @AndreaCalin In each period each of these elements are updated. My current code will find the average between 3 numbers regardless of whether they are updated or not. For example list = [a1 a2 a3], avg = (a1 + a2 + a3)/3. Now for example the first element is updated list = [b1 a2 a3], my code will find the average like this avg = (b1 a2 a3)/3, but I want it to find the average when all the three elements are updated ( I mean list = [b1 b2 b3])

    – helen
    Nov 19 '18 at 20:07













  • Then just use some flags to determine when the 3 values were all updated.

    – Andrea Calin
    Nov 19 '18 at 20:08











  • "when all the three elements in the list are updated" - Instead of if (!loadList.isEmpty() && !loadList.contains(null)) {...} check for if (loadList.size() == 3 {...}

    – LuCio
    Nov 19 '18 at 20:44



















Why don't you create a separate method that will be called after each value added in the list, and checks if all the 3 values were added in the list... if yes -> you do the average. Or even better, call the method only when you have the 3 values in the current list -> that means that instead of the last if you just check if the list has the 3 elements -> if yes, you do the average.

– Andrea Calin
Nov 19 '18 at 19:56







Why don't you create a separate method that will be called after each value added in the list, and checks if all the 3 values were added in the list... if yes -> you do the average. Or even better, call the method only when you have the 3 values in the current list -> that means that instead of the last if you just check if the list has the 3 elements -> if yes, you do the average.

– Andrea Calin
Nov 19 '18 at 19:56















@AndreaCalin In each period each of these elements are updated. My current code will find the average between 3 numbers regardless of whether they are updated or not. For example list = [a1 a2 a3], avg = (a1 + a2 + a3)/3. Now for example the first element is updated list = [b1 a2 a3], my code will find the average like this avg = (b1 a2 a3)/3, but I want it to find the average when all the three elements are updated ( I mean list = [b1 b2 b3])

– helen
Nov 19 '18 at 20:07







@AndreaCalin In each period each of these elements are updated. My current code will find the average between 3 numbers regardless of whether they are updated or not. For example list = [a1 a2 a3], avg = (a1 + a2 + a3)/3. Now for example the first element is updated list = [b1 a2 a3], my code will find the average like this avg = (b1 a2 a3)/3, but I want it to find the average when all the three elements are updated ( I mean list = [b1 b2 b3])

– helen
Nov 19 '18 at 20:07















Then just use some flags to determine when the 3 values were all updated.

– Andrea Calin
Nov 19 '18 at 20:08





Then just use some flags to determine when the 3 values were all updated.

– Andrea Calin
Nov 19 '18 at 20:08













"when all the three elements in the list are updated" - Instead of if (!loadList.isEmpty() && !loadList.contains(null)) {...} check for if (loadList.size() == 3 {...}

– LuCio
Nov 19 '18 at 20:44







"when all the three elements in the list are updated" - Instead of if (!loadList.isEmpty() && !loadList.contains(null)) {...} check for if (loadList.size() == 3 {...}

– LuCio
Nov 19 '18 at 20:44














3 Answers
3






active

oldest

votes


















2














Yo can add three boolean fields and use them in the last if statement:



boolean first = false;
boolean second= false;
boolean third = false;
List<Integer> loadList = new ArrayList<>(3);
if ((dstIp.toString().equals("10.0.0.1") && udp.getPayload() != null) {
loadList.add(0, intLoad1);
first = true;
} else if ((dstIp.toString().equals("10.0.0.2") && udp.getPayload() != null) {
loadList.add(1, intLoad2);
second = true;
} else if ((dstIp.toString().equals("10.0.0.3") && udp.getPayload() != null) {
loadList.add(2, intLoad3);
third = true;
}

if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
int sum = loadList.stream().mapToInt(Integer::intValue).sum();
System.out.println("---- Sum: "+sum);
double averageLoad = ((double) sum) / loadList.size();
first = false;
second= false;
third = false;
}





share|improve this answer































    0














    Using flags:



    List<Integer> loadList = new ArrayList<>(3);
    boolean first = false;
    boolean second = false;
    boolean third = false;

    if ((dstIp.toString().equals("10.0.0.1")
    && udp.getPayload() != null) {

    loadList.add(0, intLoad1);
    first = true;
    }
    else if ((dstIp.toString().equals("10.0.0.2")
    && udp.getPayload() != null) {

    loadList.add(1, intLoad2);
    second = true;
    }
    else if ((dstIp.toString().equals("10.0.0.3")
    && udp.getPayload() != null) {

    loadList.add(2, intLoad3);
    third = true;
    }

    if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
    int sum = loadList.stream().mapToInt(Integer::intValue).sum();
    System.out.println("---- Sum: "+sum);
    double averageLoad = ((double) sum) / loadList.size();
    first = false;
    second = false;
    third = false;
    }


    }






    share|improve this answer































      0














      You can use List<Future> and push all the three values into that list.
      Then wait for all of those to be complete and do the average.



      that would look roughly like below:



      List<Future<Integer>> futures= new ArrayList<>();
      futures.push(1); // 2,3 as well
      // now that we have all the future values
      for(Future currFuture:futures) {
      if(!currFuture.isDone()) currFuture.get();
      }
      // now perform average
      int sum = 0;
      for(Integer value: futures) {
      sum+= value;
      }
      System.out.println("avg is ", sum/values.length);


      Syntax could go wrong a bit since I haven't written any java code in recent times. Please feel free to edit as required






      share|improve this answer

























        Your Answer






        StackExchange.ifUsing("editor", function () {
        StackExchange.using("externalEditor", function () {
        StackExchange.using("snippets", function () {
        StackExchange.snippets.init();
        });
        });
        }, "code-snippets");

        StackExchange.ready(function() {
        var channelOptions = {
        tags: "".split(" "),
        id: "1"
        };
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function() {
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled) {
        StackExchange.using("snippets", function() {
        createEditor();
        });
        }
        else {
        createEditor();
        }
        });

        function createEditor() {
        StackExchange.prepareEditor({
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: true,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: 10,
        bindNavPrevention: true,
        postfix: "",
        imageUploader: {
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        },
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        });


        }
        });














        draft saved

        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53381675%2frunning-if-condition-after-all-three-items-are-updated%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        2














        Yo can add three boolean fields and use them in the last if statement:



        boolean first = false;
        boolean second= false;
        boolean third = false;
        List<Integer> loadList = new ArrayList<>(3);
        if ((dstIp.toString().equals("10.0.0.1") && udp.getPayload() != null) {
        loadList.add(0, intLoad1);
        first = true;
        } else if ((dstIp.toString().equals("10.0.0.2") && udp.getPayload() != null) {
        loadList.add(1, intLoad2);
        second = true;
        } else if ((dstIp.toString().equals("10.0.0.3") && udp.getPayload() != null) {
        loadList.add(2, intLoad3);
        third = true;
        }

        if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
        int sum = loadList.stream().mapToInt(Integer::intValue).sum();
        System.out.println("---- Sum: "+sum);
        double averageLoad = ((double) sum) / loadList.size();
        first = false;
        second= false;
        third = false;
        }





        share|improve this answer




























          2














          Yo can add three boolean fields and use them in the last if statement:



          boolean first = false;
          boolean second= false;
          boolean third = false;
          List<Integer> loadList = new ArrayList<>(3);
          if ((dstIp.toString().equals("10.0.0.1") && udp.getPayload() != null) {
          loadList.add(0, intLoad1);
          first = true;
          } else if ((dstIp.toString().equals("10.0.0.2") && udp.getPayload() != null) {
          loadList.add(1, intLoad2);
          second = true;
          } else if ((dstIp.toString().equals("10.0.0.3") && udp.getPayload() != null) {
          loadList.add(2, intLoad3);
          third = true;
          }

          if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
          int sum = loadList.stream().mapToInt(Integer::intValue).sum();
          System.out.println("---- Sum: "+sum);
          double averageLoad = ((double) sum) / loadList.size();
          first = false;
          second= false;
          third = false;
          }





          share|improve this answer


























            2












            2








            2







            Yo can add three boolean fields and use them in the last if statement:



            boolean first = false;
            boolean second= false;
            boolean third = false;
            List<Integer> loadList = new ArrayList<>(3);
            if ((dstIp.toString().equals("10.0.0.1") && udp.getPayload() != null) {
            loadList.add(0, intLoad1);
            first = true;
            } else if ((dstIp.toString().equals("10.0.0.2") && udp.getPayload() != null) {
            loadList.add(1, intLoad2);
            second = true;
            } else if ((dstIp.toString().equals("10.0.0.3") && udp.getPayload() != null) {
            loadList.add(2, intLoad3);
            third = true;
            }

            if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
            int sum = loadList.stream().mapToInt(Integer::intValue).sum();
            System.out.println("---- Sum: "+sum);
            double averageLoad = ((double) sum) / loadList.size();
            first = false;
            second= false;
            third = false;
            }





            share|improve this answer













            Yo can add three boolean fields and use them in the last if statement:



            boolean first = false;
            boolean second= false;
            boolean third = false;
            List<Integer> loadList = new ArrayList<>(3);
            if ((dstIp.toString().equals("10.0.0.1") && udp.getPayload() != null) {
            loadList.add(0, intLoad1);
            first = true;
            } else if ((dstIp.toString().equals("10.0.0.2") && udp.getPayload() != null) {
            loadList.add(1, intLoad2);
            second = true;
            } else if ((dstIp.toString().equals("10.0.0.3") && udp.getPayload() != null) {
            loadList.add(2, intLoad3);
            third = true;
            }

            if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
            int sum = loadList.stream().mapToInt(Integer::intValue).sum();
            System.out.println("---- Sum: "+sum);
            double averageLoad = ((double) sum) / loadList.size();
            first = false;
            second= false;
            third = false;
            }






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 19 '18 at 20:06









            CentosCentos

            20019




            20019

























                0














                Using flags:



                List<Integer> loadList = new ArrayList<>(3);
                boolean first = false;
                boolean second = false;
                boolean third = false;

                if ((dstIp.toString().equals("10.0.0.1")
                && udp.getPayload() != null) {

                loadList.add(0, intLoad1);
                first = true;
                }
                else if ((dstIp.toString().equals("10.0.0.2")
                && udp.getPayload() != null) {

                loadList.add(1, intLoad2);
                second = true;
                }
                else if ((dstIp.toString().equals("10.0.0.3")
                && udp.getPayload() != null) {

                loadList.add(2, intLoad3);
                third = true;
                }

                if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
                int sum = loadList.stream().mapToInt(Integer::intValue).sum();
                System.out.println("---- Sum: "+sum);
                double averageLoad = ((double) sum) / loadList.size();
                first = false;
                second = false;
                third = false;
                }


                }






                share|improve this answer




























                  0














                  Using flags:



                  List<Integer> loadList = new ArrayList<>(3);
                  boolean first = false;
                  boolean second = false;
                  boolean third = false;

                  if ((dstIp.toString().equals("10.0.0.1")
                  && udp.getPayload() != null) {

                  loadList.add(0, intLoad1);
                  first = true;
                  }
                  else if ((dstIp.toString().equals("10.0.0.2")
                  && udp.getPayload() != null) {

                  loadList.add(1, intLoad2);
                  second = true;
                  }
                  else if ((dstIp.toString().equals("10.0.0.3")
                  && udp.getPayload() != null) {

                  loadList.add(2, intLoad3);
                  third = true;
                  }

                  if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
                  int sum = loadList.stream().mapToInt(Integer::intValue).sum();
                  System.out.println("---- Sum: "+sum);
                  double averageLoad = ((double) sum) / loadList.size();
                  first = false;
                  second = false;
                  third = false;
                  }


                  }






                  share|improve this answer


























                    0












                    0








                    0







                    Using flags:



                    List<Integer> loadList = new ArrayList<>(3);
                    boolean first = false;
                    boolean second = false;
                    boolean third = false;

                    if ((dstIp.toString().equals("10.0.0.1")
                    && udp.getPayload() != null) {

                    loadList.add(0, intLoad1);
                    first = true;
                    }
                    else if ((dstIp.toString().equals("10.0.0.2")
                    && udp.getPayload() != null) {

                    loadList.add(1, intLoad2);
                    second = true;
                    }
                    else if ((dstIp.toString().equals("10.0.0.3")
                    && udp.getPayload() != null) {

                    loadList.add(2, intLoad3);
                    third = true;
                    }

                    if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
                    int sum = loadList.stream().mapToInt(Integer::intValue).sum();
                    System.out.println("---- Sum: "+sum);
                    double averageLoad = ((double) sum) / loadList.size();
                    first = false;
                    second = false;
                    third = false;
                    }


                    }






                    share|improve this answer













                    Using flags:



                    List<Integer> loadList = new ArrayList<>(3);
                    boolean first = false;
                    boolean second = false;
                    boolean third = false;

                    if ((dstIp.toString().equals("10.0.0.1")
                    && udp.getPayload() != null) {

                    loadList.add(0, intLoad1);
                    first = true;
                    }
                    else if ((dstIp.toString().equals("10.0.0.2")
                    && udp.getPayload() != null) {

                    loadList.add(1, intLoad2);
                    second = true;
                    }
                    else if ((dstIp.toString().equals("10.0.0.3")
                    && udp.getPayload() != null) {

                    loadList.add(2, intLoad3);
                    third = true;
                    }

                    if (!loadList.isEmpty() && !loadList.contains(null) && first && second && third) {
                    int sum = loadList.stream().mapToInt(Integer::intValue).sum();
                    System.out.println("---- Sum: "+sum);
                    double averageLoad = ((double) sum) / loadList.size();
                    first = false;
                    second = false;
                    third = false;
                    }


                    }







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Nov 19 '18 at 20:12









                    Andrea CalinAndrea Calin

                    1889




                    1889























                        0














                        You can use List<Future> and push all the three values into that list.
                        Then wait for all of those to be complete and do the average.



                        that would look roughly like below:



                        List<Future<Integer>> futures= new ArrayList<>();
                        futures.push(1); // 2,3 as well
                        // now that we have all the future values
                        for(Future currFuture:futures) {
                        if(!currFuture.isDone()) currFuture.get();
                        }
                        // now perform average
                        int sum = 0;
                        for(Integer value: futures) {
                        sum+= value;
                        }
                        System.out.println("avg is ", sum/values.length);


                        Syntax could go wrong a bit since I haven't written any java code in recent times. Please feel free to edit as required






                        share|improve this answer






























                          0














                          You can use List<Future> and push all the three values into that list.
                          Then wait for all of those to be complete and do the average.



                          that would look roughly like below:



                          List<Future<Integer>> futures= new ArrayList<>();
                          futures.push(1); // 2,3 as well
                          // now that we have all the future values
                          for(Future currFuture:futures) {
                          if(!currFuture.isDone()) currFuture.get();
                          }
                          // now perform average
                          int sum = 0;
                          for(Integer value: futures) {
                          sum+= value;
                          }
                          System.out.println("avg is ", sum/values.length);


                          Syntax could go wrong a bit since I haven't written any java code in recent times. Please feel free to edit as required






                          share|improve this answer




























                            0












                            0








                            0







                            You can use List<Future> and push all the three values into that list.
                            Then wait for all of those to be complete and do the average.



                            that would look roughly like below:



                            List<Future<Integer>> futures= new ArrayList<>();
                            futures.push(1); // 2,3 as well
                            // now that we have all the future values
                            for(Future currFuture:futures) {
                            if(!currFuture.isDone()) currFuture.get();
                            }
                            // now perform average
                            int sum = 0;
                            for(Integer value: futures) {
                            sum+= value;
                            }
                            System.out.println("avg is ", sum/values.length);


                            Syntax could go wrong a bit since I haven't written any java code in recent times. Please feel free to edit as required






                            share|improve this answer















                            You can use List<Future> and push all the three values into that list.
                            Then wait for all of those to be complete and do the average.



                            that would look roughly like below:



                            List<Future<Integer>> futures= new ArrayList<>();
                            futures.push(1); // 2,3 as well
                            // now that we have all the future values
                            for(Future currFuture:futures) {
                            if(!currFuture.isDone()) currFuture.get();
                            }
                            // now perform average
                            int sum = 0;
                            for(Integer value: futures) {
                            sum+= value;
                            }
                            System.out.println("avg is ", sum/values.length);


                            Syntax could go wrong a bit since I haven't written any java code in recent times. Please feel free to edit as required







                            share|improve this answer














                            share|improve this answer



                            share|improve this answer








                            edited Nov 19 '18 at 22:49

























                            answered Nov 19 '18 at 22:43









                            klvenkyklvenky

                            129211




                            129211






























                                draft saved

                                draft discarded




















































                                Thanks for contributing an answer to Stack Overflow!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid



                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53381675%2frunning-if-condition-after-all-three-items-are-updated%23new-answer', 'question_page');
                                }
                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                Guess what letter conforming each word

                                Port of Spain

                                Run scheduled task as local user group (not BUILTIN)