Introduction to Computer Science I - Iterators ArrayList
Transcript of Introduction to Computer Science I - Iterators ArrayList
Introduction to Computer Science I
IteratorsArrayList
Janyl Jumadinova
2 April, 2018
IteratorsI One of the most useful operations for any collection is the
ability to run through each of the elements in a loop.
I This process is called iteration.
2/13
Iterator object
Methods:I hasNext(): returns a boolean value
true if there is at least one more item to process.
I next(): retrieves the next item in the collection to process.
3/13
Iterators
Several classes in Java API define iterators.
I Scanner:hasNext(): returns true if there is another input token toprocess
4/13
ArrayList
Write a program that reads a file and displays the words of that fileas a list.
I First display all words.
I Then display them with all plurals (ending in “s”) capitalized.
I Then display them in reverse order.
I Then display them with all plural words removed.
Problem: Don’t know how many words the file will have.
5/13
ArrayList
Write a program that reads a file and displays the words of that fileas a list.
I First display all words.
I Then display them with all plurals (ending in “s”) capitalized.
I Then display them in reverse order.
I Then display them with all plural words removed.
Problem: Don’t know how many words the file will have.
5/13
Collections
I Collection: an object that stores data; a.k.a. “data structure”
I The objects stored are called elements
I Some collections maintain an ordering; some allow duplicates
I Typical operations: add, remove, clear, contains (search), size
I Examples found in the Java class libraries: ArrayList,LinkedList, HashMap, TreeSet, PriorityQueue
I all collections are in the java.util package
6/13
Collections
I Collection: an object that stores data; a.k.a. “data structure”
I The objects stored are called elements
I Some collections maintain an ordering; some allow duplicates
I Typical operations: add, remove, clear, contains (search), size
I Examples found in the Java class libraries: ArrayList,LinkedList, HashMap, TreeSet, PriorityQueue
I all collections are in the java.util package
6/13
Collections
7/13
ListsI List: a collection storing an ordered sequence of elements
I Each element is accessible by a 0-based index
I A list has a size (number of elements that have been added)
I Elements can be added to the front, back, or elsewhere
I In Java, a list can be represented as an ArrayList object
8/13
ListsI List: a collection storing an ordered sequence of elements
I Each element is accessible by a 0-based index
I A list has a size (number of elements that have been added)
I Elements can be added to the front, back, or elsewhere
I In Java, a list can be represented as an ArrayList object
8/13
ListsI List: a collection storing an ordered sequence of elements
I Each element is accessible by a 0-based index
I A list has a size (number of elements that have been added)
I Elements can be added to the front, back, or elsewhere
I In Java, a list can be represented as an ArrayList object
8/13
ArrayList Methods
9/13
ArrayList Methods
10/13
Type Parameters (Generics)
I ArrayList<Type> name = new ArrayList<Type>();
I When constructing an ArrayList, you must specify the type ofelements it will contain between < and >.
I This is called a type parameter or a generic class.
I Allows the same ArrayList class to store lists of different types.
ArrayList<String> names = new ArrayList<String>();
names.add("Marty Stepp");
names.add("Stuart Reges");
11/13
Type Parameters (Generics)
I ArrayList<Type> name = new ArrayList<Type>();
I When constructing an ArrayList, you must specify the type ofelements it will contain between < and >.
I This is called a type parameter or a generic class.
I Allows the same ArrayList class to store lists of different types.
ArrayList<String> names = new ArrayList<String>();
names.add("Marty Stepp");
names.add("Stuart Reges");
11/13
ArrayList of Primitives?
I The type you specify when creating an ArrayList must be anobject type; it cannot be a primitive type.
// illegal -- int cannot be a type parameter
ArrayList<int> list = new ArrayList<int>();
I But we can still use ArrayList with primitive types by usingspecial classes called wrapper classes in their place.
// creates a list of ints
ArrayList<Integer> list = new ArrayList<Integer>();
12/13
ArrayList of Primitives?
I The type you specify when creating an ArrayList must be anobject type; it cannot be a primitive type.
// illegal -- int cannot be a type parameter
ArrayList<int> list = new ArrayList<int>();
I But we can still use ArrayList with primitive types by usingspecial classes called wrapper classes in their place.
// creates a list of ints
ArrayList<Integer> list = new ArrayList<Integer>();
12/13
ArrayList of Primitives?
I The type you specify when creating an ArrayList must be anobject type; it cannot be a primitive type.
// illegal -- int cannot be a type parameter
ArrayList<int> list = new ArrayList<int>();
I But we can still use ArrayList with primitive types by usingspecial classes called wrapper classes in their place.
// creates a list of ints
ArrayList<Integer> list = new ArrayList<Integer>();
12/13
Wrapper Classes
I A wrapper is an object whose sole purpose is to hold a primitivevalue.
I Once you construct the list, use it with primitives as normal:
ArrayList<Double> grades = new ArrayList<Double>();
grades.add(3.2);
grades.add(2.7);
...
double myGrade = grades.get(0);
Example13/13