Skip to content
Snippets Groups Projects
Commit 7bfa8ee4 authored by Christopher Bohn's avatar Christopher Bohn :thinking:
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
# Project-specific
# none (for now)
# Mac file finder metadata
.DS_Store
# Java files
*.class
# Emacs backup file
*~
# IntelliJ files
.idea/
out/
*.iml
*.iws
*.ipr
# Eclipse files
bin/
.settings/
.classpath
.project
# Visual Studio / VS Code files
.vs*/
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Netbeans files
nbproject/private/
build/
nbbuild/
dist/
nbdist/
nbactions.xml
nb-configuration.xml
# Maven
target/
# Miscellaneous
tmp/
*.tmp
*.bak
*.swp
package edu.unl.cse.csce361;
public class ConcretePerson implements Person {
private String name;
private String phoneNumber;
public ConcretePerson(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
}
@Override
public String getName() {
return name;
}
@Override
public String getPhoneNumber() {
return phoneNumber;
}
@Override
public String toString() {
return getName() + "\t" + getPhoneNumber();
}
}
package edu.unl.cse.csce361;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.stream.Stream;
public class Main {
private static Set<Person> populatePeople() {
Set<Person> people = new HashSet<>();
Person person = new ConcretePerson("Jenny", "867-5309");
people.add(person);
person = new ConcretePerson("Glenn Miller", "Pennsylvania 6-5000");
people.add(person);
person = new ConcretePerson("The Marvelettes", "Beechwood 4-5789");
people.add(person);
person = new ConcretePerson("Information", "555-1212");
people.add(person);
return people;
}
private static Person iterateWithForEach(String targetName, Set<Person> people) {
Person targetPerson = null;
for (Person person : people) {
if (person.getName().equals(targetName)) {
targetPerson = person;
break; // Bad programmer! No cookie for you!
}
}
return targetPerson;
}
private static Person iterateWithLoopCounter(String targetName, Set<Person> people) {
Person candidatePerson;
Person targetPerson = null;
int counter = 0;
Person[] personArray = people.toArray(new Person[people.size()]);
while ((targetPerson == null) && counter < personArray.length) {
candidatePerson = personArray[counter];
if (candidatePerson.getName().equals(targetName)) {
targetPerson = candidatePerson;
}
counter++;
}
return targetPerson;
}
private static Person iterateWithHasNext(String targetName, Set<Person> people) {
Person candidatePerson;
Person targetPerson = null;
Iterator<Person> personIterator = people.iterator();
while ((targetPerson == null) && personIterator.hasNext()) {
candidatePerson = personIterator.next();
if (candidatePerson.getName().equals(targetName)) {
targetPerson = candidatePerson;
}
}
return targetPerson;
}
private static Person filterWithStream(String targetName, Set<Person> people) {
Stream<Person> personStream = people.stream().filter(person -> person.getName().equals(targetName));
return personStream.findAny().orElse(null);
}
public static void main(String[] args) {
Set<Person> people = populatePeople();
String targetName = "Information";
String absentName = "Foo";
System.out.println();
System.out.println("Iterating using For Each (Java 8)");
Person person = iterateWithForEach(targetName, people);
System.out.println(person);
person = iterateWithForEach(absentName, people);
System.out.println(person);
System.out.println();
System.out.println("Iterating using Loop Counter (Java 1)");
person = iterateWithLoopCounter(targetName, people);
System.out.println(person);
person = iterateWithLoopCounter(absentName, people);
System.out.println(person);
System.out.println();
System.out.println("Iterating using Next (Java 5)");
person = iterateWithHasNext(targetName, people);
System.out.println(person);
person = iterateWithHasNext(absentName, people);
System.out.println(person);
System.out.println();
System.out.println("Filtering using Stream (Java 8)");
person = filterWithStream(targetName, people);
System.out.println(person);
person = filterWithStream(absentName, people);
System.out.println(person);
}
}
package edu.unl.cse.csce361;
public interface Person {
String getName();
String getPhoneNumber();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment