Generics and The ArrayList Class - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Generics and The ArrayList Class

Description:

Generics and The ArrayList Class Lecture 13 Dr. Jihene Kaabi University Of Ha il (Girls Branch) Semester 081 * Dr. Jihene Kaabi ... – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 29
Provided by: Jihene
Category:

less

Transcript and Presenter's Notes

Title: Generics and The ArrayList Class


1
  • Generics and The ArrayList Class
  • Lecture 13

2
Part 1
  • The ArrayList Class

3
The ArrayList Class
  • ArrayList is a class in the standard Java
    libraries.
  • Unlike arrays, which have a fixed length once
    they have been created, an ArrayList is an object
    that can grow and shrink while your program is
    running.
  • In general, an ArrayList serves the same purpose
    as an array, except that an ArrayList can change
    length while the program is running.

4
ArrayLists Disadvantages
  • An ArrayList is less efficient than an array.
  • It does not have the convenient square bracket
    notation.
  • The base type of an ArrayList must be a class
    type (or other reference type) it cannot be a
    primitive type (int, double, or char).

5
Using the ArrayList Class
  • In order to make use of the ArrayList class, it
    must first be imported from the package
    java.util.
  • An ArrayList is created and named in the same
    way as object of any class, except that you
    specify the base type as follows
  • ArrayListltBaseTypegt aList new
    ArrayListltBaseTypegt()
  • An initial capacity can be specified when
    creating an ArrayList as well.
  • e.g. The following code creates an ArrayList
    that stores objects of the base type String with
    an initial capacity of 20 items.
  • ArrayListltStringgt list new ArrayListltStringgt(20)

6
The ArrayList Methods
  • The tools for manipulating arrays consist only
    of the square brackets and the instance variable
    length.
  • ArrayLists, however, come with a selection of
    powerful methods that can do many of the things
    for which code would have to be written in order
    to do them using arrays.

7
The ArrayList Methods
Example ArrayListltDoublegt list1 new
ArrayListltDoublegt(30) ArrayListltStringgt list2
new ArrayListltStringgt()
8
The ArrayList Methods
Example ArrayListltStringgt list new
ArrayListltStringgt() list.add(Simab) list.add(
Shahid) list.add(0,Semester 081)
9
The ArrayList Methods
Example ArrayListltStringgt list new
ArrayListltStringgt() int index 1
list.add(Hi) list.add(There) string S1
list.set(index, Hello) List.add(S1) String S2
list.get(index)
10
Example 01
  • ArrayListltintegergt list new ArrayListltintegergt()
  • int index 2
  • list.add(1) // will add at index 0
  • list.add(2) // will add at index 1
  • index 1
  • integer i list.set(index, 7)
  • System.out.println(i)
  • Output
  • 2
  • The set() function of ArrayList class set the
    index with the given value and returned the value
    previously stored at that index

11
Example 01
  • ArrayListltintegergt list new ArrayListltintegergt()
  • int index 2
  • list.add(1) // will add at index 0
  • list.add(2) // will add at index 1
  • index 1
  • integer i list.get(index)
  • System.out.println(i)
  • Output
  • 2
  • The get() function of ArrayList class returned
    the returned the value stored at that index

12
The ArrayList Methods
13
The ArrayList Methods
14
Example
  • ArrayListltIntegergt list new ArrayListltIntegergt
    (20)
  • list.add(1)
  • list.add(2)
  • list.add(3)
  • int index 1
  • list.remove(index)
  •   for(Integer i list)
  • System.out.println(i " ")
  • Output
  • 1
  • 3
  • In this code the remove function has removed the
    value stored at index 1.

15
Example
  • ArrayListltIntegergt list new ArrayListltIntegergt
    (20)
  • list.add(1)
  • list.add(2)
  • list.add(3)
  • int index 1
  • Integer i list.remove(index)
  •  
  • System.out.println(i " ")
  • Output
  • 2

16
Example
  • ArrayListltIntegergt list new ArrayListltIntegergt
    (20)
  • list.add(1)
  • list.add(2)
  • list.add(3)
  • list.clear()
  • for(Integer i list)
  • System.out.println(i " ")
  • Output
  • It will not print any thing because the clear()
    will delete all the elements of the list.

17
The ArrayList Methods
18
Example
  • ArrayListltIntegergt list new ArrayListltIntegergt
    (20)
  • list.add(1)
  • list.add(2)
  • list.add(3)
  • int index
  • index list.indexOf(2) System.out.println(
    Index of 2 is index)
  • Output
  • Index of 2 is 1

19
Example
  • ArrayListltIntegergt list new ArrayListltIntegergt
    (20)
  • list.add(4)
  • list.add(2)
  • list.add(3)
  • list.add(4)
  • int index
  • index list.lastIndexOf(4)
    System.out.println(Last Index of 4 is
    index)
  • Output
  • Index of 4 is 3

20
The ArrayList Methods
21
The ArrayList Methods
22
The ArrayList Methods
23
Why are Some Parameters of Type Base_Type and
Others of type Object
  • When looking at the methods available in the
    ArrayList class, there appears to be some
    inconsistency.
  • In some cases, when a parameter is naturally an
    object of the base type, the parameter type is
    the base type.
  • However, in other cases, it is the type Object.
  • This is because the ArrayList class implements a
    number of interfaces, and inherits methods from
    various classes.
  • These interfaces and classes specify that certain
    parameters have type Object.

24
For-each Loop for ArrayList Objects
  • The ArrayList class is an example of a collection
    class.
  • Starting with version 5.0, Java has added a new
    kind of for loop called a for-each or enhanced
    for loop.
  • This kind of loop has been designed to cycle
    through all the elements in a collection (like an
    ArrayList).
  • Syntax
  • for (Array_Base_Type Variable
    ArrayList_Object)
  • Statement
  • Example
  • ArrayListltIntegergt list new
    ArrayListltIntegergt(10)
  • for (Integer element list)
  • element 20

25
Use trimToSize to Save Memory
  • An ArrayList automatically increases its capacity
    when needed.
  • However, the capacity may increase beyond what a
    program requires.
  • In addition, although an ArrayList grows
    automatically when needed, it does not shrink
    automatically.
  • If an ArrayList has a large amount of excess
    capacity, an invocation of the method trimToSize
    will shrink the capacity of the ArrayList down to
    the size needed.

26
Example (ArrayList class)
  • import java.util.
  • class ArrayListDemo
  • public static void main(String args)
  • ArrayListltStringgt list new ArrayListltStringgt
    (20)
  • list.add("AB") list.add("CD")
    list.add("GH")
  • list.add("IJ") list.add("KL")
    list.add("MN")
  • list.add("QR") list.add("ST")
    list.add("WX")
  • list.add("YZ")
  • // Print the elements of the ArrayList
  • System.out.println("The following is the
    initial ArrayList")
  • for(String s list)
  • System.out.print(s " ")
  • // Add elements to the ArrayList
  • list.add(2 , "ef") list.add(7 , "op")
    list.add(10 , "uv")
  • // Print the new ArrayList
  • System.out.println(" ")
  • System.out.println("The following is the new
    ArrayList")

27
Example (ArrayList class)
  • // Print the element at position index1 in the
    ArrayList
  • System.out.println(" ")
  • int index111
  • String element list.get(index1)
  • System.out.println("The element at position
    " " " index1 " " "is" " " element)
  • // Print the index of an element of the
    ArrayList
  • System.out.println(" ")
  • int index list.indexOf("CD")
  • System.out.println("The element CD is at
    position " " index)

Output The following is the initial
ArrayList AB CD GH IJ KL MN QR ST WX YZ The
following is the new ArrayList AB CD ef GH IJ KL
MN op QR ST uv WX YZ The element at position
11 is WX The element CD is at position 1
28
Parameterized Classes and Generics
  • The class ArrayList is a parameterized class.
  • It has a parameter, denoted by Base_Type, that
    can be replaced by any reference type to obtain a
    class for ArrayLists with the specified base
    type.
  • Starting with version 5.0, Java allows class
    definitions with parameters for types.
  • These classes that have type parameters are
    called parameterized class or generic
    definitions, or, simply, generics.
Write a Comment
User Comments (0)
About PowerShow.com