If your assignment is to create your own, start with the JavaDoc that describes it as "Resizable-array implementation of the List interface." Make an empty class that "implements List" and the compiler will tell you (in the form of error messages) what methods you need to write. Look at the doc for List to see what they all do. Some are optional and depending on your aassignment you may be able to throw UnsupportedOperation exception for any you don't get to.
It would proabably be cheating to extend AbstractList.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi