All Flashcards
What is an ArrayList?
A resizable array implementation of the List interface.
What is IndexOutOfBoundsException?
An exception thrown when trying to access an invalid index in an ArrayList.
What is ConcurrentModificationException?
An exception thrown when an ArrayList is structurally modified while being traversed with an enhanced for loop.
What does 'pass-by-value' mean?
A method of passing arguments to a function where a copy of the variable's value is passed, not the original variable itself.
What is the purpose of the get()
method in ArrayList?
It retrieves the element at a specific index in the ArrayList.
What is the purpose of the size()
method in ArrayList?
It returns the number of elements currently in the ArrayList.
What is the purpose of the remove(i)
method in ArrayList?
It removes the element at the specified index i
from the ArrayList.
What is the purpose of the add(i, element)
method in ArrayList?
It inserts the specified element at the specified position i
in the ArrayList.
What is traversing?
Visiting each element in a data structure, such as an ArrayList, in a specific order.
What is the purpose of the set()
method in ArrayList?
Replaces the element at the specified position in this list with the specified element.
What is the output of the following code?
java
ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(1, 2, 3));
for (int i = 0; i < nums.size(); i++) {
System.out.print(nums.get(i) + " ");
}
1 2 3
What is the output of the following code?
java
ArrayList<String> words = new ArrayList<>(Arrays.asList("hello", "world"));
for (String word : words) {
System.out.print(word + " ");
}
hello world
Identify the error in the following code:
java
ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3));
for (int i = 0; i <= numbers.size(); i++) {
System.out.println(numbers.get(i));
}
IndexOutOfBoundsException. The loop condition should be i < numbers.size()
.
What is the output of the following code?
java
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(2, 4, 6, 8));
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 4 == 0) {
list.remove(i);
i--;
}
}
System.out.println(list);
[2, 6]
What is the output of the following code?
java
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 3, 5, 7));
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 2 != 0) {
list.add(i, list.get(i));
i++;
}
}
System.out.println(list);
[1, 1, 3, 3, 5, 5, 7, 7]
Identify the error in the following code:
java
ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(1, 2, 3));
for (Integer num : nums) {
if (num % 2 == 0) {
nums.remove(num);
}
}
ConcurrentModificationException. Cannot modify the ArrayList while using an enhanced for loop.
What is the output of the following code?
java
ArrayList<String> names = new ArrayList<>(Arrays.asList("Alice", "Bob", "Charlie"));
for (String name : names) {
name = "David";
}
System.out.println(names);
[Alice, Bob, Charlie]
What is the output of the following code?
java
ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(10, 20, 30));
for (int i = 0; i < numbers.size(); i++) {
numbers.set(i, numbers.get(i) / 2);
}
System.out.println(numbers);
[5, 10, 15]
What is the output of the following code?
java
ArrayList<Integer> values = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
values.removeIf(n -> (n % 2 == 0));
System.out.println(values);
[1, 3, 5]
What is the output of the following code?
java
ArrayList<String> colors = new ArrayList<>(Arrays.asList("red", "green", "blue"));
colors.forEach(color -> System.out.print(color.toUpperCase() + " "));
RED GREEN BLUE
Why use get()
instead of bracket notation with ArrayLists?
ArrayLists are objects, not primitive arrays. get()
is the method to access elements.
Why does removing elements during traversal require special care?
Removing shifts elements, potentially skipping the next element if the index isn't adjusted.
Why does adding elements during traversal require special care?
Adding elements shifts elements, potentially causing infinite loops if the index isn't adjusted correctly.
Why can't you modify an ArrayList's size using an enhanced for loop?
Enhanced for loops rely on iterators, which don't allow structural modifications during iteration.
Why is i--
used after removing an element?
To account for the shift in elements after removal, ensuring the next element is checked.
Why is i++
used after adding an element?
To account for the shift in elements after insertion, ensuring the next element is checked.
How does the size()
method behave when adding or removing elements during traversal?
The size()
method dynamically updates to reflect the current number of elements in the ArrayList.
What happens if you try to access an index outside the range of an ArrayList?
An IndexOutOfBoundsException
is thrown.
What is the primary difference between traversing an array and an ArrayList using a for loop?
Arrays use bracket notation and the length
property, while ArrayLists use the get()
and size()
methods.
In what scenario is it appropriate to use a regular for loop instead of an enhanced for loop when traversing an ArrayList?
When you need to modify the ArrayList's structure (add or remove elements) during traversal.