Recitation 4 James Wei Professor Peck 9/20/2013 Covered in this Recitation • Help with Jotto: • Common APT • List manipulation • Debugger example (if you didn’t get to it last week) • Google form: http://goo.gl/lKCW25 Common APT • Go to the course APT page and read the prompt for the Common APT. • In Eclipse, write code to solve this APT. Use the tester as always to verify that your solution works. • Feel free to work with a friend. • Ask the TAs if you have any questions! Common APT • There are many different ways to solve this APT. • What are some different solutions for Common? • How do these different solutions perform (think Big O)? List Manipulation • If you haven’t already, snarf the code for Recitation 4. • Run the code for “fruit1.txt” and take note of the output and what the code is doing. • Try running the code for “fruit2.txt”. • Why doesn’t this code work? Consider: • What do the words that fail to be removed have in common? • How is the iteration index changing with each iteration? List Manipulation • Let’s fix the code. One way we can do that is by creating a new ArrayList and copying elements over into that new list. • Take some time to fix the code in Eclipse by writing a new method called removeFromListGood(). • This method should create a new ArrayList, copy over the elements we want to keep from the old list to the new one, then update the old list to be equal to the new list. • Consider: • How do we make sure we are creating a new list instead of a reference to the existing one? • How do we update the old list once we have finished making the new list? List Manipulation • How else can we fix the broken list remove code? • We can try manipulating the index as we loop through the list. • Create a new method called removeFromListIndex() that does this. As you code, consider: • What is the index at the end of each iteration? • What should the index be at the end of each iteration? • When should the index be manipulated before the next iteration begins? Debugger Example • If you didn’t get to it last week, snarf the MysteryClass.java code from last week. • Using the debugger, figure out what the code is doing. • Remember: • Set breakpoints by double clicking in the left sidebar (just left of the line numbers if you have those enabled) • Step over lines of code to see them executed • Step into lines of code containing methods to jump to the code for those methods • If you find yourself breaking at weird places, you might be in Java source code—make sure you’re not breaking at exceptions and try using step return to get out of unfamiliar territory Have a good weekend! Don’t forget to submit your answers!