student responsibilities mat 2170
play

Student Responsibilities Mat 2170 Reminder: EXAM next Thursday, - PDF document

Student Responsibilities Mat 2170 Reminder: EXAM next Thursday, 4/24, at 7:00 pm Picnic is Tuesday, 4/22 - get signed up. The ArrayList Class Reading: Textbook, Chapter 11.8, The ArrayList class Lab 13, utilizing the ArrayList class


  1. Student Responsibilities Mat 2170 ◮ Reminder: EXAM next Thursday, 4/24, at 7:00 pm Picnic is Tuesday, 4/22 - get signed up. The ArrayList Class ◮ Reading: Textbook, Chapter 11.8, The ArrayList class ◮ Lab 13, utilizing the ArrayList class Spring 2014 ◮ Attendance 1 2 Wrapper Classes ◮ To get around this problem, Java includes a wrapper class to correspond to each of the following primitive types: ◮ Java designers chose to separate primitive types from the ↔ ↔ boolean Boolean float Float standard class hierarchy, mostly for efficiency reasons. byte ↔ Byte int ↔ Integer char ↔ Character long ↔ Long double ↔ Double short ↔ Short ◮ Primitive Java values take less space and allow Java to use more of the capabilities provided by hardware. ◮ All of the above primitive wrapper classes in Java are immutable – their states (contents) cannot be modified after they are created, only replaced. ◮ However, there are times when the fact that primitive types aren’t objects poses problems ◮ The value stored in an instance of any of the wrapper classes is (e.g., there are tools in the Java libraries that work only with an object , and we can use it in any context that requires an objects and not primitive types — one such is ArrayList ). object. 3 4 Boxing and Unboxing Storing Large Amounts of Data ◮ Java SE 5.0 (and subsequent versions) automatically converts values back and forth between a primitive type and the ◮ It is often the case that in order to solve a problem by computer, corresponding wrapper class. These operations are called boxing we need to be able to store an unknown and / or a large number and unboxing . of data items. ◮ For example, Integer maxItems = 5; ◮ It would be difficult to create individual names and storage causes Java to call the Integer constructor, and is locations for each. equivalent to: Integer maxItems = new Integer(5); ◮ Therefore, programming languages such as Java offer ways to store collections of data in various containers . ◮ Similarly, int nextMax = maxItems + 1; is equivalent to: int nextMax = maxItems.intValue()+1; 5 6

  2. Introduction: Arrays Array Terminology ◮ An array is a java container object that holds a fixed number of An array is a collection of individual data values values of a single type . with two distinguishing characteristics: ◮ The length of an array is established when the array is created. 1. An array is ordered After creation, its length is fixed. We must be able to count off the values — here is the first, here is the second, and so on — just like Strings . ◮ The individual values in an array are called elements . 2. An array is homogeneous ◮ The type of object an array can hold is its element type . Every value in the array must be of the same type . ◮ Each element is identified by its position in the array — also called its index — Arrays are a primitive type in Java. which always begins at 0 and ends at length - 1 They do not have methods associated with them. (Just like String objects.) 7 8 Array Data Storage The ArrayList Class ◮ The java.util package includes a class called ArrayList that The easiest way to visualize arrays is to think of them as a linear extends the usefulness of arrays by providing additional collection of boxes, much like a row of Post Office boxes, each of operations and ease of use. which is marked with its index number. For example: ◮ The ArrayList class is a wrapper for the primitive array type — it encapsulates an array and provides methods for accessing and 0 1 2 3 4 5 6 7 8 9 interacting with it. intArray : ◮ The ArrayList class hides the details of array manipulation. where intArray was declared as an array of int of size 10. ◮ All operations on an ArrayList object (and hence, the array within) are accomplished using method calls . 9 10 Generic Types and Boxing/Unboxing Accessing the Inner int ◮ Then we may store and access int values in myList through ◮ The element type of any ArrayList must be a Java class . automatic boxing and unboxing: ◮ Automatic conversion of values between a primitive type and the ◮ In this statement, Java uses boxing to enclose 42 in a wrapper corresponding wrapper class allows an ArrayList object to object of type Integer : store primitive values by using their wrapper classes . myList.add(42); ◮ For example, to create a list of integers: ◮ Here, the statement unboxes the Integer to obtain the int ArrayList <Integer> myList = new ArrayList<Integer>(); equivalent: This statement invokes a constructor to create an ArrayList of Integer . int answer = myList.get(0); 11 12

  3. Back to the ArrayList Class Generic Types in Java ◮ A new ArrayList object is created by calling the ArrayList ◮ In the summary of ArrayList methods which follows, the constructor , for example: notation < T > indicates the base or element type of the ArrayList<String> myNames = new ArrayList<String>(); ArrayList object. ◮ It is a really good idea to specify the element type, such as ◮ In other words, the type parameter < T > is a placeholder for <String> in the example above, in angle brackets when the element type used in the array. invoking the constructor. ◮ Class definitions that include a type parameter are called ◮ Doing this allows Java to check for the correct element type generic types . when set() is called, and eliminates the need for a type cast when get() is called. 13 14 ArrayList Methods boolean add(<T> element) void clear() Adds a new element to the end of the ArrayList ; Removes all elements from the ArrayList the return value is always true int size() void add(int index, <T> element) Returns the number of elements in the ArrayList Inserts a new element into the ArrayList ; <T> get(int index) before the position specified by index Returns the object at the specified index <T> remove(int index) <T> set(int index, <T> value) Removes the element at the specified position and Sets the element at the specified index to the new value and returns the old value returns that value boolean remove(<T> element) Removes the first instance of element , if it appears; returns true if a match is found 15 16 Cycling through ArrayList Elements ◮ One of the most useful things about element selection in an indexOf(<T> value) ArrayList is that the index does not have to be a constant — in Returns the index of the first occurrence of the many cases we use the control object of a for loop. specified value, or − 1 if it does not appear boolean contains(<T> value) ◮ The standard for loop pattern that cycles through each of the Returns true if the ArrayList contains the ArrayList elements: specified value for (int i = 0; i < myList.size() ; i++) { boolean isEmpty() Operations involving the i th ArrayList element } Returns true if the ArrayList contains no elements ◮ As an example, we can reset every element in intList to twenty-nine using the following: for (int i = 0; i < intList.size(); i++) { intList.set(i, 29); } 17 18

Recommend


More recommend