cse115 / cse503 introduction to computer science i dr ... · cse115 / cse503 introduction to...
TRANSCRIPT
![Page 1: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/1.jpg)
CSE115 / CSE503Introduction to Computer Science I
Dr. Carl Alphonce343 Davis Hall
Office hours:Tuesday 10:00 AM – 12:00 PM*
Wednesday 4:00 PM – 5:00 PMFriday 11:00 AM – 12:00 PM
OR request appointment via e-mail*Tuesday adjustments: 11:00 AM – 1:00 PM on 12/6
![Page 2: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/2.jpg)
ROAD
MAP
Last timeexercise 08 solutionexercise 09
Todayexercise 09 solutionexercise 10linear search
Coming upexercise 10 solutionexercise 11 (?)binary search
© Dr. Carl Alphonce
![Page 3: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/3.jpg)
© Dr. Carl Alphonce
ANNOUNCEMENTS
![Page 4: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/4.jpg)
FIN
AL E
XAM
NO
TIC
E CHECK YOUR ENTIRE FINAL EXAM SCHEDULE!
http://blogs.advising.buffalo.edu/beadvised/posts/have-you-checked-your-final-exam-schedule-4/
Room assignments will be announced at a later date.
© Dr. Carl Alphonce
![Page 5: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/5.jpg)
Lab
11Due 9:00 PM on last day of classes for everyone.
This week – recitations are office hours.
© Dr. Carl Alphonce
![Page 6: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/6.jpg)
© Dr. Carl Alphonce
EXERCISE 09solution
![Page 7: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/7.jpg)
EXER
CIS
E 09
Define a method a method with this header in a class named quiz.Question:
public HashSet<Point> maximalMatchedRegion(Point p, ArrayList<ArrayList<String>> board)
Define the method so that it returns a HashSet containing those points of the largest contiguous region matching position p.
Consider this boardaabbcabbcddddddefffd
Answer for null is { }Answer for (0,0) is { (0,0) , (1,0) , (0,1) }Answer for (0,3) is { (0,2) , (0,3) , (1,1) , (1,2) } Answer for (2,4) is { (1,4) , (2,0) , (2,1) , (2,2) , (2,3) , (2,4) , (3,4) }
© Dr. Carl Alphonce
Get Exercise-09-start from the repo. It has a solution to
exercise-08.
![Page 8: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/8.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 9: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/9.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 10: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/10.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 11: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/11.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 12: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/12.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 13: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/13.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 14: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/14.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 15: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/15.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 16: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/16.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 17: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/17.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 18: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/18.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 19: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/19.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 20: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/20.jpg)
private HashSet<Point> maximalMatchedRegion(Point start, ArrayList<ArrayList<String>> board) {
HashSet<Point> matchedRegion = new HashSet<Point>();HashSet<Point> candidatesForInclusion = new HashSet<Point>();HashSet<Point> adjacentMatches = new HashSet<Point>();
candidatesForInclusion.add(start);
while (! candidatesForInclusion.isEmpty()) {for (Point p : candidatesForInclusion) {
for (Point q : adjacentAndMatching(p, board)) {if (!matchedRegion.contains(q) && !candidatesForInclusion.contains(q)) {
adjacentMatches.add(q);}
}}matchedRegion.addAll(candidatesForInclusion);HashSet<Point> tmp = candidatesForInclusion;candidatesForInclusion = adjacentMatches;adjacentMatches = tmp;adjacentMatches.clear();
}return matchedRegion;
}
© Dr. Carl Alphonce
![Page 21: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/21.jpg)
© Dr. Carl Alphonce
LINEAR SEARCH
![Page 22: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/22.jpg)
Sear
chin
g fo
r a g
iven
val
ue
![Page 23: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/23.jpg)
Sear
chComputers are good at storing large amounts of data
Finding a particular value in a large collection is a typical operation
LINEAR SEARCHhow to search for a value in an unordered collection
![Page 24: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/24.jpg)
gene
ral s
earc
hGeneral problem: determine whether a value exists in a given collection
Assumption: to make things easier we assume that the collection contains Strings
Approach: define a method which accepts as arguments a Collection<String> and a value of type String, and returns a boolean indicating whether the value is in the collection
Pretend that ‘contains’ does not exist.
![Page 25: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/25.jpg)
step
s in
def
inin
g m
etho
d*
Step 1 – stub out the method
public boolean isMemberOf(String s, Collection<String> c){return false;
}
* Yes, ‘contains’ is a method already defined for this purpose. We are building an implementation of isMemberOf to understand how a method like contains works.
![Page 26: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/26.jpg)
step
s in
def
inin
g m
etho
dStep 2 – set up loopCan use any of while/for/for-each.
public boolean isMemberOf(String s, Collection<String> c){for (String x : c) {}return false;
}
![Page 27: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/27.jpg)
step
s in
def
inin
g m
etho
dStep 3 – set up test in body of loop
public boolean isMemberOf(String s, Collection<String> c){for (String x : c) {
if (s.equals(x)) {}
}return false;
}
![Page 28: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/28.jpg)
step
s in
def
inin
g m
etho
dStep 3 – set up test in body of loop
public boolean isMemberOf(String s, Collection<String> c){for (String x : c) {
if (s.equals(x)) {return true;
}}return false;
}
![Page 29: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/29.jpg)
step
s in
def
inin
g m
etho
dStep 3 – set up test in body of loop
public boolean isMemberOf(String s, Collection<String> c){for (String x : c) {
if (s.equals(x)) {return true;
}}return false;
} BUT WHAT IF s IS null ?
![Page 30: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/30.jpg)
step
s in
def
inin
g m
etho
dStep 3 – set up test in body of loop
public boolean isMemberOf(String s, Collection<String> c){for (String x : c) {
if (s.equals(x)) {return true;
}}return false;
} AND WHAT IF c IS null ?
![Page 31: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/31.jpg)
step
s in
def
inin
g m
etho
dStep 4a – but we need to be careful, as s could be null!
public boolean isMemberOf(String s, Collection<String> c){if (c != null) {
for (String x : c) {if (s==null) {
if (s == x) {return true;
}}else {
if (s.equals(x)) {return true;
}}
}}return false;
}
![Page 32: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/32.jpg)
step
s in
def
inin
g m
etho
dStep 4b – but we need to be careful, as s could be null!
public boolean isMemberOf(String s, Collection<String> c){if (c != null) {
if (s==null) {for (String x : c) {
if (s == x) { return true; }}
}else {
for (String x : c) {if (s.equals(x)) { return true; }
}}
}return false;
}
![Page 33: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/33.jpg)
== v
s.e
qual
s(…
)15.21.3. Reference Equality Operators == and !=
At run time, the result of == is true if the operand values are both null or both refer to the same object […]; otherwise, the result is false.
[…]While == may be used to compare references of type String, such an equality test determines whether or not the two operands refer to the same String object. The result is false if the operands are distinct String objects, even if they contain the same sequence of characters […]. The contents of two strings s and t can be tested for equality by the method invocation s.equals(t).
http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.21.3
![Page 34: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/34.jpg)
© Dr. Carl Alphonce
EXERCISE 10
![Page 35: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/35.jpg)
EXER
CIS
E 10
Define a method a method with this header in a class named quiz.Question:
public HashSet<HashSet<Point>> partition(ArrayList<ArrayList<String>> board)
Define the method so that it returns a HashSet<HashSet<Point>> that is a partition of the given board into disjoint and covering sets of contiguous and matching points from the board.
© Dr. Carl Alphonce
Get Exercise-10-start from the repo. It has solutions to exercise-08 and
exercise 09.
![Page 36: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/36.jpg)
EXER
CIS
E 10EXAMPLE 1
Board: aabbcabbcddddddefffd
Partition:{
{ (0,0) (1,0) (0,1) }{ (0,4) }{ (1,4) (2,0) (2,1) (2,2) (2,4) (2,3) (3,4) }{ (3,3) (3,1) (3,2) }{ (0,2) (1,1) (1,2) (0,3) }{ (1,3) }{ (3,0) }
}
© Dr. Carl Alphonce
The board we’ve been using for several
examples with exercises 8 and 9.
![Page 37: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/37.jpg)
EXER
CIS
E 10
EXAMPLE 2
Board: ababababa
Partition:{
{ (0,0) }{ (0,2) }{ (1,1) }{ (2,0) } { (2,2) } { (0,1) } { (1,0) } { (1,2) } { (2,1) }
}
© Dr. Carl Alphonce
A board for which every point is in its
own partition.
![Page 38: CSE115 / CSE503 Introduction to Computer Science I Dr ... · CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours:](https://reader033.vdocuments.us/reader033/viewer/2022041416/5e1ba0254ab364577f3cc1d6/html5/thumbnails/38.jpg)
EXER
CIS
E 10
EXAMPLE 3
Board: aaaaaaaaaaaaaaaa
Partition:{
{(0,0)(0,2)(1,1)(2,0)(2,2)(1,3)(3,0)(3,2)(0,1)(1,0)(1,2)(2,1)(3,3) (0,3)(2,3)(3,1)}}
© Dr. Carl Alphonce
A board for which all points are in the
same partition.