Arrays & ArrayList, Schemes and Mind Maps of Construction

A solution that uses an array: String[] allWords = new String[1000]; int wordCount = 0;. Scanner input = new Scanner(new File(words.txt)); while (input.

Typology: Schemes and Mind Maps

2022/2023

Uploaded on 03/01/2023

gabryel
gabryel 🇺🇸

4.6

(18)

255 documents

1 / 18

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Arrays & ArrayList
Chapter 10
ArrayList
reading: 10.1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Partial preview of the text

Download Arrays & ArrayList and more Schemes and Mind Maps Construction in PDF only on Docsity!

Arrays & ArrayList

Chapter 10

ArrayList

reading: 10.

Words exercise

— Write code to read a file and display its words in reverse

order.

Words exercise

— Write code to read a file and display its words in reverse

order.

— A solution that uses an array:

String[] allWords = new String[ 1000 ]; int wordCount = 0; Scanner input = new Scanner(new File("words.txt")); while (input.hasNext()) { String word = input.next(); allWords[wordCount] = word; wordCount++; }

— What's wrong with this?

Recall: Arrays (7.1)

— array : object that stores many values of the same type.

— element : One value in an array. — index : 0-based integer to access an element from an array. — length : Number of elements in the array.

index 0 1 2 3 4 5 6 7 8 9

value 12 49 -2 26 5 17 -6 84 72 3

element 0 element 4 element 9

length = 10

List Abstraction

— Like an array that resizes to fit its contents.

— When a list is created, it is initially empty.

[]

— Use add methods to add to different locations in list

[hello, ABC, goodbye, okay] — The list object keeps track of the element values that have been added to it, their order, indexes, and its total size. — You can add, remove, get, set, ... any index at any time.

Collections

— collection : an object that stores data; a.k.a. "data

structure"

— the objects stored are called elements — some collections maintain an ordering; some allow duplicates — typical operations: add , remove , clear , contains (search), size — examples found in the Java class libraries: (covered in this course!) — ArrayList, LinkedList, HashMap, TreeSet, PriorityQueue — all collections are in the java.util package import java.util.*;

Type parameters (generics)

ArrayList< Type > name = new ArrayList< Type >();

— When constructing an ArrayList, you must specify the

type of its elements in < >

— This is called a type parameter ; ArrayList is a generic class. — Allows the ArrayList class to store lists of different types.

— Arrays use a similar idea with Type []

ArrayList names = new ArrayList (); names.add("Marty Stepp"); names.add("Stuart Reges");

ArrayList methods (10.1)*

add( value ) appends value at end of list

add( index ,

value )

inserts given value just before the given

index, shifting subsequent values to the

right

clear() removes all elements of the list

indexOf( value ) returns first index where given value is

found in list (-1 if not found)

get( index ) returns the value at given index

remove( index ) removes/returns value at given index,

shifting subsequent values to the left

set( index ,

value )

replaces value at given index with given

value

size() returns the number of elements in list

toString() returns a string representation of the list

such as "[3, 42, -7, 15]"

ArrayList vs. array String[] names = new String[5]; // construct names[0] = "Jessica"; // store String s = names[0]; // retrieve for (int i = 0; i < names.length; i++) { if (names[i].startsWith("B")) { ... } } // iterate ArrayList list = new ArrayList(); list.add( "Jessica" ); // store String s = list.get(0); // retrieve for (int i = 0; i < list.size() ; i++) { if ( list.get(i) .startsWith("B")) { ... } } // iterate

ArrayList as param/return public static void name (ArrayList< Type > name ) {// param public static ArrayList< Type > name ( params ) // return

— Example:

// Returns count of plural words in the given list. public static int countPlural( ArrayList list ) { int count = 0; for (int i = 0; i < list.size(); i++) { String str = list.get(i); if (str.endsWith("s")) { count++; } } return count; }

Exercise solution (partial) ArrayList allWords = new ArrayList(); Scanner input = new Scanner(new File("words.txt")); while (input.hasNext()) { String word = input.next(); allWords.add(word); } // display in reverse order for (int i = allWords.size() - 1; i >= 0; i--) { System.out.println(allWords.get(i)); } // remove all plural words for (int i = 0; i < allWords.size(); i++) { String word = allWords.get(i); if (word.endsWith("s")) { allWords.remove(i); i--; } }

ArrayList of primitives?

— The type you specify when creating an ArrayList must

be an object type; it cannot be a primitive type.

// illegal -- int cannot be a type parameter ArrayList list = new ArrayList ();

— But we can still use ArrayList with primitive types by

using special classes called wrapper classes in their place.

// creates a list of ints ArrayList list = new ArrayList ();