Submit this homework using Gradescope. You can type up your answers, or write legibly and scan them. Do not attempt to submit a paper copy in class, as it will not be accepted.
For each question, write the method assuming that it’s part of the
StringArrayList
we started in lecture. The code is in the notes, linked to
from the Schedule page, if you missed class.
A. (1 points) Write a public void set(int i, String s)
method that sets the element of the list at index i
to the value s
. That is, it should overwrite the existing element at i
. Be sure to handle exceptional conditions appropriately.
B. (1 points) Using a foreach loop, write a public boolean contains(String s)
method that searches the list for an occurrence of a value equivalent to s
(be careful with the kind of equality you use!). Return true
to indicate that a string equivalent to s
is contained in the StringArrayList
, and return false
to indicate that there is no value in our StringArrayList
that is equivalent to s
.
The only variable you may declare is the String
declared in the foreach loop: for (String v : array) { ... }
. Do not declare any other variables (you will lose points)!!!
C. (1 points) Write a public int indexOf(String s)
method that searches the list for the first occurrence of a value equivalent to s
(be careful with what kind of equality you use!), and returns its index. Return -1
if the value is not found.
D. (1 point each) Suppose you instantiate a new StringArrayList
. What are the size
and the length of the backing array:
- Right after instantiating the list.
- After you
add()
10 items to this list. - After you
remove(0)
five times from this list. - After you
add()
10 more items to this list.
Assume each step happens in sequence (that is, for part 3, you’ve instantiated the list, added 10 items, and then removed five).