0% found this document useful (0 votes)
17 views

09 ArraysAndLists

The document discusses arrays, ArrayLists, wrapper classes, and auto-boxing in Java. It provides examples of declaring and initializing arrays, using ArrayLists instead of arrays, and how wrapper classes and auto-boxing allow ArrayLists to store primitive types by boxing and unboxing them. The document also covers iterating through arrays and ArrayLists using traditional for loops and enhanced for loops.

Uploaded by

Ahfrin J
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

09 ArraysAndLists

The document discusses arrays, ArrayLists, wrapper classes, and auto-boxing in Java. It provides examples of declaring and initializing arrays, using ArrayLists instead of arrays, and how wrapper classes and auto-boxing allow ArrayLists to store primitive types by boxing and unboxing them. The document also covers iterating through arrays and ArrayLists using traditional for loops and enhanced for loops.

Uploaded by

Ahfrin J
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Arrays, ArrayLists,

Wrapper Classes, Auto-boxing

Check out ArraysAndLists from SVN


 Test next Wednesday
 Topics from Ch. 1-7
 Will include:
◦ A paper part—logic, short answer, fill-in-the-blank
◦ A programming part—a few small programs, unit
tests provided
 Review in class Monday
◦ Bring questions
◦ I won’t anything prepared but am happy to cover
whatever you want, including working examples

Q1
 Syntax: ElementType[] name

 Examples:
◦ A variable: double[] averages;

◦ Parameters: public int max(int[] values) {…}

◦ A field: private Investment[] mutualFunds;


 Syntax: new ElementType[length]
 Creates space to hold values
 Sets values to defaults
◦ 0 for number types
◦ false for boolean type Don’t forget
◦ null for object types this step!
 Examples:
◦ double[] pools = new double[50];
◦ int[] elecVotes = new int[50];

Q2
 Reading:
◦ double exp = polls[42] * elecVotes[42];

Reads the element


Sets the value
in slot 37. with index 42.

 Writing:
◦ elecVotes[37] = 11;

 Index numbers run from 0 to array length – 1


 Getting array length: elecVotes.length
No parens, array length
is (like) a field Q3,4
Arrays… Java C Python
have fixed length yes yes no
are initialized to default yes no ?
values
track their own length yes no yes
trying to access ―out of yes no yes
bounds‖ stops program
before worse things happen
Begin ElectionSimulator
program
 ArrayLists to the rescue
 Example:
Element type

◦ ArrayList<State> sts = new ArrayList<State>();


Variable type Constructs new,
Adds new element empty list
to end of list
sts.add(new State(“Indiana”, 11, .484, .497));
 ArrayList is a generic class
◦ Type in <brackets> is called a type parameter

Q5,6
 Type parameter can’t be a primitive type
◦ Not: ArrayList<int> runs;
◦ But: ArrayList<Integer> runs;

 Use get method to read elements


◦ Not: runs[12]
◦ But: runs.get(12)

 Use size() not length


◦ Not: runs.length
◦ But: runs.size()
 Add to end:
◦ victories.add(new WorldSeries(2008));
 Overwrite existing element:
◦ victories.set(0,new WorldSeries(1907));
 Insert in the middle:
◦ victories.add(1, new WorldSeries(1908));
◦ Pushes elements at indexes 2 and higher up one

 Can also remove:


◦ victories.remove(victories.size() - 1)
Convert ElectionSimulator to
use ArrayLists
IT’S ALL REAL!
 Problem:
Primitive Wrapper
◦ ArrayLists only hold objects
byte Byte
◦ Primitive types arent’ objects
boolean Boolean
char Character
 Solution: double Double
◦ Wrapper classes—instances are float Float
used to ―turn‖ primitive types int Integer
into objects long Long
◦ Primitive value is stored in a short Short
field inside the object

Q7
 Auto-boxing: automatically enclosing a
primitive type in a wrapper object when
needed
 Example:
◦ You write: Integer m = 6;
◦ Java does: Integer m = new Integer(6);

◦ You write: Integer ans= m * 7;


◦ Java does: int temp = m.intValue() * 7;
Integer ans = new Integer(temp);
 Just have to remember to use wrapper class
for list element type

 Example:
◦ ArrayList<Integer> runs =
new ArrayList<Integer>();
runs.add(9); // 9 is auto-boxed
◦ int r = runs.get(0); // result is unboxed
 Old school
double scores[] = …
double sum = 0.0;
for (int i=0; i < scores.length; i++) {
sum += scores[i];
}
 New, whiz-bang, enhanced for loop
double scores[] = …
double sum = 0.0;  No index
for (double sc : scores) { variable
sum += sc;  Gives a name
} (sc here) to
Say ―in‖ each element
 ArrayList<State> states = …
int total = 0;
for (State st : states) {
total += st.getElectoralVotes();
}

Q8
Finish ElectionSimulator

You might also like