Reputation: 177
Code looks like
public void option() {
seeTasks = tasks.getTasks();
for (int i = 0; i < seeTasks.size(); i++) {
for (int b = 0; b < seeBoxes.size(); b++) {
System.out.println("see Tasks: " + seeTasks.get(i) +
" see Boxes " + seeBoxes.get(b));
if(seeTasks.get(i) == seeBoxes.get(b)) {
option.add(seeTasks.get(i));
}
}
}
System.out.println(option);
}
The if
statement with seeTaks.get(i)
wont go go through if the values of seeTasks.get(i)
is lower than 150. How can this be? As seen below, 370 doesnt get included. If I change 110 to 150, it wont go through.
Output of println
's is:
see Tasks: 50 see Boxes 50
see Tasks: 50 see Boxes 110
see Tasks: 50 see Boxes 150
see Tasks: 50 see Boxes 210
see Tasks: 50 see Boxes 270
see Tasks: 50 see Boxes 310
see Tasks: 50 see Boxes 370
see Tasks: 50 see Boxes 430
see Tasks: 110 see Boxes 50
see Tasks: 110 see Boxes 110
see Tasks: 110 see Boxes 150
see Tasks: 110 see Boxes 210
see Tasks: 110 see Boxes 270
see Tasks: 110 see Boxes 310
see Tasks: 110 see Boxes 370
see Tasks: 110 see Boxes 430
see Tasks: 370 see Boxes 50
see Tasks: 370 see Boxes 110
see Tasks: 370 see Boxes 150
see Tasks: 370 see Boxes 210
see Tasks: 370 see Boxes 270
see Tasks: 370 see Boxes 310
see Tasks: 370 see Boxes 370
see Tasks: 370 see Boxes 430
[50, 110]
Upvotes: 2
Views: 394
Reputation: 183868
I suspect
seeTasks.get(i)
and
seeBoxes.get(b)
both return an Integer
. Then for values below 128, the Integer
cache returns the same instance, but for larger values, new instances. Use equals()
.
Upvotes: 5