CSC 143/Chapter 10
From charlesreid1
Chapter 10: ArrayLists
Sections:
10.1 ArrayLists
10.2 Comparable interface
10.3 Case study: Vocabulary comparison
Section 10.1: ArrayLists
10.1 Definitions
Definitions:
- Generic class
- Wrapper class
- Boxing
- Unboxing
10.1 Materials
Introduce ArrayList object the way you would introduce the Python list
- List: basic data type, very important
- Difference between list and array - memory allocation and element insertion
- Dynamic arrays
Array notation
- Wrapper class, everything is an object, treat primitive types as objects
What kind of things would you want to do with an ArrayList?
Basic basic operations:
- Get size
Other basic operations:
- Get item at index i
- Set item at index i
- Add item, add item at index i
- Remove item
- Modify item at index i
Now that we have defined these basic operations, we can move on to examples/algorithms/implementations.
Section 10.2: Comparable interface
10.2 Definitions
Definitions:
- Comparison function
- Natural ordering
10.2 Materials
First, need to mention unboxing: ArrayList<Integer> vs ArrayList<int>
- Unboxing is a really stupid side effect of Java's implementation
- Everything is an object. Except the primitive types. But everything is an object.
Comparison of objects
- extend idea behind o1.equals(o2) to comparisons
- lt/lte/gt/gte
- how to redefine comparison operator for our own objects
Section 10.3: Vocabulary comparison
10.3 Material
Some efficiency considerations
Version 1: compute vocabulary
- Add unique words to ArrayList, and sort
Version 2: compute overlap
- Number of matches between two sentences
Version 3: complete program
- so far, build vocab list for 2 files, compute overlap between them
- now, to deal with large files, print statistics (Nwords, Noverlapwords, Percent overlap)
Chapter 10 Summary
Deliverables
ArrayList
- Notation, how to use it
- Conceptualizing problems that can be easily resolved with ArrayList
- Adding/removing and looping over ArrayLists
- Wrapper classes
Comparable
- Natural ordering and compareTo() function
- Implementing the Comparable interface
Case study: Vocab comparison
- Count number of unique words
- Count overlap between two lists
- Compute statistics
Chapter 10 Homework
HW Questions
(Recommended) Self-check problems:
(Required) Exercises:
(Required) Projects:
HW Details
Self-check:
Exercises:
Projects:
Chapter 10 Code
Lecture Code
Factoring
GCD
Euclid's Algorithm for GCD
Worksheet Code
NEED TO DO ALL OF THIS
Sorting Polynomials:
- Re-use Polynomial class, implement a compareTo method
- Define rules for sorting polynomials
- Higher Degree
- Higher coefficients of higher degree terms
- Higher coefficients of lower degree terms
- Driver:
- Implement 10 polynomials
- Print them in sorted order
Chapter 10 Goodies
Profiles
Puzzle 3
More Caesar ciphers
Once they finish with this worksheet they'll be ready for the affine cipher (...huh?)
Flags
| CSC 143 - Intro to Programming II Computer Science 143 - Intro to Programming II, South Seattle College.
Chapter 8: Object Oriented Reivew CSC 143/Chapter 8 Chapter 9: Inheritance and Interfaces CSC 143/Chapter 9 Chapter 10: ArrayList CSC 143/Chapter 10 Chapter 11: Java Collections Framework CSC 143/Chapter 11 Chapter 12: Recursion CSC 143/Chapter 12 Chapter 13: Searching and Sorting CSC 143/Chapter 13 Chapter 14: Stacks and Queues CSC 143/Chapter 14 Chapter 16: Linked Lists CSC 143/Chapter 16
Category:Teaching · Category:CSC 143 · Category:CSC Related: CSC 142 Flags · Template:CSC143Flag · e |