ArrayList
Introduction to ArrayList
LEARNING OBJECTIVE
Represent collections of related object reference data using ArrayList objects.
ESSENTIAL KNOWLEDGE
An ArrayList object is mutable and contains object references.
The ArrayList constructor ArrayList() constructs an empty list.
Java allows the generic type ArrayList<E>, where the generic type E specifies the type of the elements.
When ArrayList<E> is specified, the types of the reference parameters and return type when using the methods are type E.
ArrayList<E> is preferred over ArrayList because it allows the compiler to find errors that would otherwise be found at run-time.
ArrayList Methods
LEARNING OBJECTIVE
Represent collections of related object reference data using ArrayList objects.
ESSENTIAL KNOWLEDGE
The ArrayList class is part of the java. util package. An import statement can be used to make this class available for use in the program.
The following ArrayList methods— including what they do and when they are used—are part of the Java Quick Reference:
int size()-Returnsthenumberof elements in the list
boolean add(E obj)-Appends obj to end of list; returns true
void add(int index, E obj)- Inserts obj at position index (0 <= index <= size), moving elements at position index and higher to the right (adds 1 to their indices) and adds 1 to size
E get(int index)-Returns the element at position index in the list
E set(int index, E obj)— Replaces the element at position index with obj; returns the element formerly at position index
E remove(int index)—Removes element from position index, moving elements at position index + 1 and higher to the left (subtracts 1 from their indices) and subtracts 1 from size; returns the element formerly at position index
Traversing ArrayLists
LEARNING OBJECTIVE
For ArrayList objects:
Traverse using a for or
while loop- Traverse using an enhanced for loop
ESSENTIAL KNOWLEDGE
Iteration statements can be used to access all the elements in an ArrayList. This is called traversing the ArrayList.
Deleting elements during a traversal of an ArrayList requires using special techniques to avoid skipping elements.
Since the indices for an ArrayList start at 0 and end at the number of elements − 1, accessing an index value outside of this range will result in an IndexOutOfBoundsException being thrown.
Changing the size of an ArrayList
while traversing it using an
enhanced for loop can result in a ConcurrentModificationException being thrown. Therefore, when using
an enhanced for loop to traverse an ArrayList, you should not add or remove elements.
Developing Algorithms Using ArrayLists
LEARNING OBJECTIVE
For algorithms in the context of a particular specification that requires the use of ArrayList traversals:
Identify standard algorithms.
Modify standard algorithms.
Develop an algorithm.
ESSENTIAL KNOWLEDGE
There are standard ArrayList algorithms that utilize traversals to:
Insert elements
Delete elements
Apply the same standard algorithms that are used with 1D arrays
Some algorithms require multiple String, array, or ArrayList objects to be traversed simultaneously.
Searching
LEARNING OBJECTIVE
Apply sequential/linear search algorithms to search for specific information
in array or ArrayList objects.
ESSENTIAL KNOWLEDGE
There are standard algorithms for searching.
Sequential/linear search algorithms check each element in order until the desired value is found or all elements in the array or ArrayList have been checked.
Sorting
LEARNING OBJECTIVE
Apply selection sort and insertion sort algorithms to sort the elements of array or ArrayList objects.
ESSENTIAL KNOWLEDGE
Selection sort and insertion sort are iterative sorting algorithms that can be used to sort elements in an array or ArrayList.
LEARNING OBJECTIVE
Compute statement execution counts and informal run-time comparison of sorting algorithms.
ESSENTIAL KNOWLEDGE
Informal run-time comparisons of program code segments can be made using statement execution counts.
Ethical Issues Around Data Collection
LEARNING OBJECTIVE
Explain the risks to privacy from collecting and storing personal data on computer systems.
ESSENTIAL KNOWLEDGE
When using the computer, personal privacy is at risk. Programmers should attempt to safeguard personal privacy.
Computer use and the creation of programs have an impact on personal security. These impacts can be beneficial and/or harmful.