69.8k views
6 votes
Consider the following method, inCommon, which takes two Integer ArrayList parameters. The method returns true if the same integer value appears in both lists at least one time, and false otherwise.

public static boolean inCommon(ArrayList a, ArrayList b)
{
for (int i = 0; i < a.size(); i++)
{
for (int j = 0; j < b.size(); j++) // Line 5
{
if (a.get(i).equals(b.get(j)))
{
return true;
}
}
}
return false;
}

Which of the following best explains the impact to the inCommon method when line 5 is replaced by for (int j = b.size() - 1; j > 0; j--) ?

a. The change has no impact on the behavior of the method.
b. After the change, the method will never check the first element in list b.
c. After the change, the method will never check the last element in list b.
d. After the change, the method will never check the first and the last elements in list b.
e. The change will cause the method to throw an IndexOutOfBounds exception.

User Inesa
by
3.7k points

1 Answer

9 votes

Answer:

b. After the change, the method will never check the first element in list b.

Step-by-step explanation:

After changing the code on line 5 with the one in the question the method will never check the first element in list b. This is because by changing the code you are telling the method to run for every element in list b starting from the last element and moving backward. Since the second argument is j > 0, once j is equal to 0 it will not run the method since it would give a False on the argument and therefore, will never run the method for the element in position 0 (first element in the list)

User Vince Bowdren
by
5.1k points