+ All Categories
Home > Documents > Generics and The ArrayList Class Lecture 13

Generics and The ArrayList Class Lecture 13

Date post: 02-Jan-2016
Category:
Upload: duncan-nguyen
View: 36 times
Download: 0 times
Share this document with a friend
Description:
Generics and The ArrayList Class Lecture 13. Part 1. The ArrayList Class. The ArrayList Class. ArrayList is a class in the standard Java libraries. - PowerPoint PPT Presentation
28
Programming With Java Programming With Java ICS201 Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 1 Generics and The ArrayList Class Lecture 13
Transcript
Page 1: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 1

Generics and The ArrayList Class

Lecture 13

Page 2: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 2

Part 1

The ArrayList Class

Page 3: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 3

The ArrayList Class

o 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.

o In general, an ArrayList serves the same purpose as an

array, except that an ArrayList can change length

while the program is running.

Page 4: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 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).

Page 5: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 5

Using the ArrayList Class

o In order to make use of the ArrayList class, it must first be imported from the package java.util.

o An ArrayList is created and named in the same way as object of any class, except that you specify the base type as follows:

ArrayList<BaseType> aList = new ArrayList<BaseType>();

o 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.

ArrayList<String> list = new ArrayList<String>(20);

Page 6: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 6

The ArrayList Methods

o The tools for manipulating arrays consist only of the

square brackets and the instance variable length.

o 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.

Page 7: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 7

The ArrayList Methods

Example:

ArrayList<Double> list1 = new ArrayList<Double>(30);

ArrayList<String> list2 = new ArrayList<String>();

Page 8: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 8

The ArrayList Methods

Example:

ArrayList<String> list = new ArrayList<String>();

list.add(“Simab”);

list.add(“Shahid”);

list.add(0,“Semester 081”);

Page 9: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 9

The ArrayList Methods

Example:

ArrayList<String> list = new ArrayList<String>();

int index = 1;

list.add(“Hi”);

list.add(“There”);

string S1 = list.set(index, “Hello”);

List.add(S1);

String S2 = list.get(index);

Page 10: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1Example 01

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 10

• ArrayList<integer> list = new ArrayList<integer>();

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

Page 11: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1Example 01

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 11

• ArrayList<integer> list = new ArrayList<integer>();

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

Page 12: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 12

The ArrayList Methods

Page 13: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 13

The ArrayList Methods

Page 14: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1Example

• ArrayList<Integer> list = new ArrayList<Integer> (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.

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 14

Page 15: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1Example

• ArrayList<Integer> list = new ArrayList<Integer> (20);

list.add(1);

list.add(2);

list.add(3);

int index = 1;

Integer i =list.remove(index);

 

System.out.println(i +" ");

Output:

2

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 15

Page 16: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1Example

• ArrayList<Integer> list = new ArrayList<Integer> (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.

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 16

Page 17: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 17

The ArrayList Methods

Page 18: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1Example

• ArrayList<Integer> list = new ArrayList<Integer> (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

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 18

Page 19: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1Example

• ArrayList<Integer> list = new ArrayList<Integer> (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

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 19

Page 20: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 20

The ArrayList Methods

Page 21: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 21

The ArrayList Methods

Page 22: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 22

The ArrayList Methods

Page 23: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 23

Why are Some Parameters of Type Base_Type and Others of type Object

o 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.

o 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.

Page 24: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 24

For-each Loop for ArrayList Objects o The ArrayList class is an example of a collection class.

o 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:

ArrayList<Integer> list = new ArrayList<Integer>(10); for (Integer element : list)

element = 20 ;

Page 25: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 25

Use trimToSize to Save Memoryo 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.

o 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.

Page 26: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 26

Example (ArrayList class)import java.util.*;

class ArrayListDemo {

public static void main(String[] args) {

ArrayList<String> list = new ArrayList<String> (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:");

for(String s : list)

System.out.print(s +" "); continued

Page 27: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 27

Example (ArrayList class)// Print the element at position index1 in the ArrayList System.out.println(" "); int index1=11; 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 WXThe element CD is at position 1

Page 28: Generics and The ArrayList Class Lecture 13

Pro

gra

mm

ing

Wit

h Java

Pro

gra

mm

ing

Wit

h Java

ICS

20

1

Dr. Jihene Kaabi University Of Ha’il (Girls Branch) Semester 081 28

Parameterized Classes and Generics

o The class ArrayList is a parameterized class.

o 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.

o 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.


Recommended