For Loops
Strings and the equals Method
String a = “Hello”;
String b = “Hello”;
if( a.equals(b) )
{
// a and b have the same characters in the same order!
}
Strings and the equals Method
String a = “Hello”;
String b = “Hello”;
if( a.equals(b) )
{
// a and b have the same characters in the same order!
}
a == b
does not always work as you expect (because reasons)
For Loops
for( int i=0; i < 10; i++ )
{
System.out.println( i );
}
For i,
starting at 0,
as long as it is less than 10,
print it
then increment it.
For Loops
for( int i=0; i < 10; i++ )
{
System.out.println( i );
}
For i,
starting at 0,
as long as it is less than 10,
print it
then increment it.
For Loops
for( int i=0; i < 10; i++ )
{
System.out.println( i );
}
For i,
starting at 0,
as long as it is less than 10,
print it
then increment it.
For Loops
for( int i=0; i < 10; i++ )
{
System.out.println( i );
}
For i,
starting at 0,
as long as it is less than 10,
print it
then increment it.
For Loops
for( int i=0; i < 10; i++ )
{
System.out.println( i );
}
For i,
starting at 0,
as long as it is less than 10,
print it
then increment it.
For Loops
for( int i=0; i < 10; i++ )
{
System.out.println( i );
}
For i,
starting at 0,
as long as it is less than 10,
print it
then increment it.
Syntax
for(initialize counter; condition; increment)
{
// body
}
for(int i = 0; i < 5; i++)
{
System.out.println( i );
}
0
1
2
3
4
Smallest: 0
Largest: 4
For Loops & For Each Loops
Foreach Loop
for(Type var : list)
Iterates over every element of an ArrayList
Always starts at the beginning of list
Always stops at the end of list�
Stores the value of each element in var
For Loop
for(int i = 0; i < limit; i++)
Iterates over numbers
Specify where to start
Specify where to end
Specify how to increment the value each iteration (i++, i+=2, i--)
Funsheet!
For loops and ArrayLists
for(String s : list)
{
System.out.println(s);
}
for(int i=0; i<list.size(); i++)
{
String s = list.get(i);
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
Example (Similarities)
for(String s : list)
{
System.out.println(s);
}
for(int i=0; i<list.size(); i++)
{
String s = list.get(i);
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
Example (Similarities)
for(String s : list)
{
System.out.println(s);
}
for(int i=0; i<list.size(); i++)
{
String s = list.get(i);
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
Example (Similarities)
for(String s : list)
{
System.out.println(s);
}
for(int i=0; i<list.size(); i++)
{
String s = list.get(i);
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
Example (Differences)
for(String s : list)
{
System.out.println(s);
}
for(int i=0; i<list.size(); i++)
{
String s = list.get(i);
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
For loops have access to the index being iterated over.
Foreach loops do not have access to the current element’s index
Example (Differences)
for(String s : list)
{
System.out.println(s);
}
for(int i=3; i<list.size()/2; i++)
{
String s = list.get(i);
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
For loops can iterate over a specific range of values
Foreach loops always iterate over ALL values
Example (Differences)
for(String s : list)
{
System.out.println(s);
}
for(int i=list.size()-1; i>=0; i--)
{
String s = list.get(i);
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
For loops can iterate BACKWARDS
Foreach loops always iterate forwards
For Loops & For Each Loops
Foreach Loop
for(Type var : list)
Simple way to access all elements of a List
Simple syntax
For Loop
for(int i = 0; i < limit; i++)
More control
More complicated syntax
Writing a for loop
ArrayList<String> blah = …
Writing a for loop
ArrayList<String> blah = …
for(int i=0;
Writing a for loop
ArrayList<String> blah = …
for(int i=0; i<blah.size();
Writing a for loop
ArrayList<String> blah = …
for(int i=0; i<blah.size(); i++)
{
String thing = blah.get(i);
}
Writing a for loop
ArrayList<String> blah = …
for(int i=0; i<blah.size(); i++)
{
String thing = blah.get(i);
}
Writing a for loop
ArrayList<String> blah = …
for(int i=0; i<blah.size(); i++)
{
String thing = blah.get(i);
System.out.println(thing);
}
Bonus Funsheet!
Searching a List
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“a”);
letters.add(“e”);
letters.add(“i”);
letters.add(“o”);
letters.add(“u”);
0 | 1 | 2 | 3 | 4 |
a | e | i | o | u |
Searching a List
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“a”);
letters.add(“e”);
letters.add(“i”);
letters.add(“o”);
letters.add(“u”);
0 | 1 | 2 | 3 | 4 |
a | e | i | o | u |
Where is the letter “o” in this list?
Searching a List
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“a”);
letters.add(“e”);
letters.add(“i”);
letters.add(“o”);
letters.add(“u”);
0 | 1 | 2 | 3 | 4 |
a | e | i | o | u |
What is an algorithm you could use to programmatically find the letter “o” in a list?
Searching a List
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“a”);
letters.add(“e”);
letters.add(“i”);
letters.add(“o”);
letters.add(“u”);
0 | 1 | 2 | 3 | 4 |
a | e | i | o | u |
Where is the letter “x” in this list?
Searching a List
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“a”);
letters.add(“e”);
letters.add(“i”);
letters.add(“o”);
letters.add(“u”);
0 | 1 | 2 | 3 | 4 |
a | e | i | o | u |
If you can’t find a value in a list, the default “does not exist” index is -1
Activity: Searching a List
Complete the following method that returns the index of target in list,
or -1 if list does not contain target.
public int find(String target, ArrayList<String> list)
{
int ret = ____________
for(_________________________________)
{
� }
return ret;
}
Activity: Searching a List
Complete the following method that returns the index of target in list,
or -1 if list does not contain target.
public int find(String target, ArrayList<String> list)
{
int ret = -1; // default value if we can’t find target
for(int i=0; i<list.size(); i++) // iterate over every element
{
String letter = list.get(i); // always get the value at i and store in variable
if( letter.equals(target) ) // use .equals method to compare strings
{ ret = i; } // if the strings match, remember this i� }
return ret;
}
Counting
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“b”);
letters.add(“a”);
letters.add(“n”);
letters.add(“a”);
letters.add(“n”);
letters.add(“a”);
0 | 1 | 2 | 3 | 4 | 5 |
b | a | n | a | n | a |
Counting
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“b”);
letters.add(“a”);
letters.add(“n”);
letters.add(“a”);
letters.add(“n”);
letters.add(“a”);
0 | 1 | 2 | 3 | 4 | 5 |
b | a | n | a | n | a |
How many times does “a”
appear in this list?
Counting
Consider the following ArrayList
ArrayList<String> letters = new ArrayList<String>();
letters.add(“b”);
letters.add(“a”);
letters.add(“n”);
letters.add(“a”);
letters.add(“n”);
letters.add(“a”);
0 | 1 | 2 | 3 | 4 | 5 |
b | a | n | a | n | a |
What is an algorithm you could use to programmatically count how often “a” is in a list?
Activity: Counting Elements in a List
Complete the following method that returns how many times target appears in list,
public int count(String target, ArrayList<String> list)
{
int ret = ____________
for(_________________________________)
{
� }
return ret;
}
Activity: Counting Elements in a List
Complete the following method that returns how many times target appears in list,
public int count(String target, ArrayList<String> list)
{
int ret = 0; // default value if target doesn’t exist, the count is 0
for(int i=0; i<list.size(); i++) // iterate over every element
{
String letter = list.get(i); // always get the value at i and store in variable
if( letter.equals(target) ) // use .equals method to compare strings
{ ret++; } // if the strings match, increment i� }
return ret;
}
Lab 3.2