Running if condition after all three items are updated
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
add a comment |
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
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 examplelist = [a1 a2 a3]
,avg = (a1 + a2 + a3)/3
. Now for example the first element is updatedlist = [b1 a2 a3]
, my code will find the average like thisavg = (b1 a2 a3)/3
, but I want it to find the average when all the three elements are updated ( I meanlist = [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 ofif (!loadList.isEmpty() && !loadList.contains(null)) {...}
check forif (loadList.size() == 3 {...}
– LuCio
Nov 19 '18 at 20:44
add a comment |
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
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
java if-statement
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 examplelist = [a1 a2 a3]
,avg = (a1 + a2 + a3)/3
. Now for example the first element is updatedlist = [b1 a2 a3]
, my code will find the average like thisavg = (b1 a2 a3)/3
, but I want it to find the average when all the three elements are updated ( I meanlist = [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 ofif (!loadList.isEmpty() && !loadList.contains(null)) {...}
check forif (loadList.size() == 3 {...}
– LuCio
Nov 19 '18 at 20:44
add a comment |
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 examplelist = [a1 a2 a3]
,avg = (a1 + a2 + a3)/3
. Now for example the first element is updatedlist = [b1 a2 a3]
, my code will find the average like thisavg = (b1 a2 a3)/3
, but I want it to find the average when all the three elements are updated ( I meanlist = [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 ofif (!loadList.isEmpty() && !loadList.contains(null)) {...}
check forif (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
add a comment |
3 Answers
3
active
oldest
votes
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;
}
add a comment |
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;
}
}
add a comment |
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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;
}
add a comment |
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;
}
add a comment |
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;
}
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;
}
answered Nov 19 '18 at 20:06
CentosCentos
20019
20019
add a comment |
add a comment |
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;
}
}
add a comment |
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;
}
}
add a comment |
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;
}
}
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;
}
}
answered Nov 19 '18 at 20:12
Andrea CalinAndrea Calin
1889
1889
add a comment |
add a comment |
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
add a comment |
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
add a comment |
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
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
edited Nov 19 '18 at 22:49
answered Nov 19 '18 at 22:43
klvenkyklvenky
129211
129211
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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 updatedlist = [b1 a2 a3]
, my code will find the average like thisavg = (b1 a2 a3)/3
, but I want it to find the average when all the three elements are updated ( I meanlist = [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 forif (loadList.size() == 3 {...}
– LuCio
Nov 19 '18 at 20:44