From 34801f6270b144f548b3029ff9c8fa76acb19e38 Mon Sep 17 00:00:00 2001 From: DavidKellyonGitHub Date: Fri, 20 Mar 2020 18:27:27 -0400 Subject: [PATCH 1/3] everything but SpiceType --- .../zipcode/quiz4/arrays/ArrayUtils.java | 32 ++++++- .../quiz4/collections/WordCounter.java | 12 ++- .../quiz4/collections/culonary/Curry.java | 8 +- .../quiz4/collections/culonary/Food.java | 20 +++-- .../quiz4/collections/culonary/Ginger.java | 7 +- .../quiz4/collections/culonary/Pepper.java | 8 +- .../quiz4/collections/culonary/Spice.java | 2 +- .../quiz4/fundamentals/Calculator.java | 16 ++-- .../quiz4/fundamentals/StringUtils.java | 78 +++++++++++++++-- .../objectorientation/account/Account.java | 10 ++- .../quiz4/objectorientation/account/Bank.java | 18 +++- .../account/BankAccount.java | 34 +++++++- .../objectorientation/account/Employee.java | 87 ++++++++++++++++++- 13 files changed, 295 insertions(+), 37 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 6deaf61..a28d5ea 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,46 @@ package rocks.zipcode.quiz4.arrays; +import java.util.Arrays; +import java.util.Stack; + /** * @author leon on 01/01/2019. */ public class ArrayUtils { public static String getMiddleElement(String[] values) { - return null; + return values[values.length/2]; + } + + public static String[] addElement(String[] arr, String str){ + String[] result = new String[arr.length+1]; + int counter = 0; + for(String existing : arr){ + result[counter] = existing; + counter++; + } + result[result.length-1] = str; + return result; } public static String[] removeMiddleElement(String[] values) { - return null; + String[] answer = new String[0]; + for (int i = 0; i < values.length;i++){ + if (i!= values.length/2){ + answer = addElement(answer,values[i]); + } + } + return answer; } public static String getLastElement(String[] values) { - return null; + return values[values.length-1]; } public static String[] removeLastElement(String[] values) { - return null; + String[] result = new String[values.length-1]; + for(int i = 0;i countMap; + public WordCounter(String... strings) { + this.countMap = new HashMap<>(); + for(String str : strings){ + countMap.put(str,Collections.frequency(Arrays.asList(strings),str)); + } } public Map getWordCountMap() { - return null; + return this.countMap; } } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java index 199cefc..79665d0 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java @@ -1,4 +1,10 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { +public class Curry extends Spice{ + String name = "Curry"; + + public String getName(){ + return this.name; + } + } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java index e06abbc..cb89a95 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java @@ -1,20 +1,30 @@ package rocks.zipcode.quiz4.collections.culonary; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author leon on 27/12/2018. */ public class Food { + ArrayList added; + + public Food(){ + this.added = new ArrayList(); + + } public List getAllSpices() { - return null; + return added; } - public > Map getSpiceCount() { - return null; + public > Map getSpiceCount() { + HashMap spiceMap = new HashMap<>(); + spiceMap.put(, 1); + return spiceMap; } public void applySpice(Spice spice) { + added.add(spice); } } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java index 3c4e177..c920371 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java @@ -3,5 +3,10 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger extends Spice{ + String name = "Ginger"; + + public String getName(){ + return this.name; + } } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java index 4b771a8..3c777ef 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java @@ -3,5 +3,11 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { +public class Pepper extends Spice{ + String name = "Pepper"; + + public String getName() { + return this.name; + } + } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java index 9ab865b..1b5cc71 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java @@ -3,5 +3,5 @@ /** * @author leon on 27/12/2018. */ -public interface Spice { +public abstract class Spice { } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java index 02f2618..88b7c89 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -1,35 +1,37 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.Arrays; + /** * @author leon on 21/12/2018. */ public class Calculator { public static Double squareRoot(Double value) { - return null; + return Math.sqrt(value); } public static Double square(Double value) { - return null; + return Math.pow(value,2); } public static Double[] squareRoots(Double... value) { - return null; + return Arrays.stream(value).map(x -> x = squareRoot(x)).toArray(Double[]::new); } public static Double[] squares(Double... values) { - return null; + return Arrays.stream(values).map(x -> x = square(x)).toArray(Double[]::new); } public static Double add(Double value1, Double value2) { - return null; + return value1 + value2; } public static Double subtract(Double value1, Double value2) { - return null; + return value1 - value2; } public static Double divide(Double divisor, Double dividend) { - return null; + return divisor/dividend; } } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index 5ec61be..4e3205e 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,98 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.Arrays; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + /** * @author leon on 21/12/2018. */ public class StringUtils { public static Character getMiddleCharacter(String string) { - return null; + return string.toCharArray()[string.length()/2]; } public static String capitalizeMiddleCharacter(String str) { - return null; + char[] letters = str.toCharArray(); + letters[letters.length/2] = getMiddleCharacter(str).toString().toUpperCase().toCharArray()[0]; + String result = ""; + for(char letter : letters){ + result += letter; + } + return result; } public static String lowerCaseMiddleCharacter(String str) { - return null; + char[] letters = str.toCharArray(); + letters[letters.length/2] = getMiddleCharacter(str).toString().toLowerCase().toCharArray()[0]; + String result = ""; + for(char letter : letters){ + result += letter; + } + return result; } public static Boolean isIsogram(String str) { - return null; + char[] letters = str.toCharArray(); + for(int i = 0;i < letters.length;i++){ + for (int j = i+1; j < letters.length;j++){ + if (letters[i] == letters[j]){ + return false; + } + } + } + return true; } public static Boolean hasDuplicateConsecutiveCharacters(String str) { - return null; + char[] letters = str.toCharArray(); + for (int i = 0;i < letters.length-1;i++){ + if (letters[i] == letters[i+1]){ + return true; + } + } + return false; } public static String removeConsecutiveDuplicateCharacters(String str) { - return null; + int dupeCounter = 0; + char[] letters = str.toCharArray(); + String result = ""; + for (int i = 0;i< letters.length-1;i++){ + int j = i+1; + dupeCounter = 0; + while (letters[i]==letters[j] && j < letters.length) { + dupeCounter++; + j++; + } + if (dupeCounter > 0){ + for (int d = i; d <= i+dupeCounter; d++){ + letters[d] = '5'; + } + } + } + for (char letter : letters){ + if (letter!='5'){ + result += letter; + } + } + return result; } + public static char caseChar(char chr){ + if (Character.isLowerCase(chr)){ + return String.valueOf(chr).toUpperCase().charAt(0); + } else { + return String.valueOf(chr).toLowerCase().charAt(0); + } + + } public static String invertCasing(String str) { - return null; + char[] letters = str.toCharArray(); + String result = ""; + for(char letter : letters){ + result += caseChar(letter); + } + return result; } } \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java index 40eb4a8..47c0492 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java @@ -3,11 +3,17 @@ /** * @author leon on 30/12/2018. */ -public class Account extends BankAccount { +public class Account { + Long id; + double balance; + + + public Long getId() { - return null; + return id; } public void setId(Long id) { + this.id = id; } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java index 0dd4183..d353081 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java @@ -1,17 +1,29 @@ package rocks.zipcode.quiz4.objectorientation.account; +import java.util.ArrayList; + /** * @author leon on 27/12/2018. */ public class Bank { + ArrayList accountList; + + public Bank(){ + this.accountList = new ArrayList(); + } + public BankAccount removeBankAccountByIndex(Integer indexNumber) { - return null; + BankAccount removed = accountList.get(indexNumber); + accountList.remove((int) indexNumber); + return removed; } public void addBankAccount(BankAccount bankAccount) { + accountList.add(bankAccount); } public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + return accountList.contains(bankAccount); + } -} +} \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java index 70ccb74..a167599 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java @@ -3,7 +3,39 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount extends Account implements Transactable{ + + public BankAccount(){ + this.balance = 0; + + } + public void setBalance(Double val) { + this.balance = val; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if (amountToIncreaseBy < 0){ + throw new IllegalArgumentException(); + } + this.balance += amountToIncreaseBy; + + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if (amountToDecreaseBy < 0) { + throw new IllegalArgumentException(); + } else if(getBalance() < amountToDecreaseBy){ + throw new IllegalArgumentException(); + } + + this.balance -= amountToDecreaseBy; + } + + @Override + public Double getBalance() { + return balance; } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java index 8407f1a..b6fa31c 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java @@ -3,18 +3,101 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker, Transactable { + BankAccount workAccount; + Double hoursWorked; + Double hourly; + Double earned; + public Employee() { + this.workAccount = new BankAccount(); + this.hoursWorked = 0.0; + this.hourly = 35.0; + this.earned = 0.0; } public Employee(BankAccount bankAccount) { + this.workAccount = bankAccount; + this.hoursWorked = 0.0; + this.hourly = 35.0; + this.earned = 0.0; } public BankAccount getBankAccount() { - return null; + return workAccount; } public void setBankAccount(BankAccount bankAccount) { + this.workAccount = bankAccount; + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + this.hoursWorked += numberOfHours; + } + + @Override + public Double getHoursWorked() { + return this.hoursWorked; + } + + @Override + public Double getHourlyWage() { + return this.hourly; + } + + @Override + public Double getMoneyEarned() { + return this.earned; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if (amountToIncreaseBy < 0) { + throw new IllegalArgumentException(); + } else { + this.workAccount.setBalance(workAccount.getBalance() + amountToIncreaseBy); + } + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if (amountToDecreaseBy < 0){ + throw new IllegalArgumentException(); + } + this.workAccount.setBalance(workAccount.getBalance()-amountToDecreaseBy); + } + + @Override + public Double getBalance() { + return this.workAccount.getBalance(); + } + + public BankAccount getWorkAccount() { + return workAccount; + } + + public void setWorkAccount(BankAccount workAccount) { + this.workAccount = workAccount; + } + + public void setHoursWorked(Double hoursWorked) { + this.hoursWorked = hoursWorked; + } + + public Double getHourly() { + return hourly; + } + + public void setHourly(Double hourly) { + this.hourly = hourly; + } + + public Double getEarned() { + return earned; + } + public void setEarned(Double earned) { + this.earned = earned; } } From 76decb279e19fb6639e8a2760d11e6bfdff99f7d Mon Sep 17 00:00:00 2001 From: DavidKellyonGitHub Date: Fri, 20 Mar 2020 19:09:31 -0400 Subject: [PATCH 2/3] spiceType required --- .../quiz4/collections/culonary/Curry.java | 5 ++++- .../quiz4/collections/culonary/Food.java | 22 +++++++++++-------- .../quiz4/collections/culonary/Ginger.java | 2 +- .../quiz4/collections/culonary/Pepper.java | 2 +- .../quiz4/collections/culonary/Spice.java | 2 +- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java index 79665d0..a0b9841 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java @@ -1,8 +1,11 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry extends Spice{ +public class Curry implements Spice{ String name = "Curry"; + public Curry(){ + } + public String getName(){ return this.name; } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java index cb89a95..903109a 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java @@ -7,24 +7,28 @@ /** * @author leon on 27/12/2018. */ -public class Food { - ArrayList added; +public class Food { + ArrayList added; public Food(){ - this.added = new ArrayList(); + this.added = new ArrayList(); } - public List getAllSpices() { + public List getAllSpices() { return added; } - public > Map getSpiceCount() { - HashMap spiceMap = new HashMap<>(); - spiceMap.put(, 1); - return spiceMap; + public > Map getSpiceCount() { +// HashMap spiceMap = new HashMap<>(); +// for(SpiceType spice : added){ +// spiceMap.put(spice, Collections.frequency(added, spice)); +// +// } + + return null; } - public void applySpice(Spice spice) { + public void applySpice(T spice) { added.add(spice); } } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java index c920371..e05167a 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java @@ -3,7 +3,7 @@ /** * @author leon on 27/12/2018. */ -public class Ginger extends Spice{ +public class Ginger implements Spice{ String name = "Ginger"; public String getName(){ diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java index 3c777ef..d67d50b 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java @@ -3,7 +3,7 @@ /** * @author leon on 27/12/2018. */ -public class Pepper extends Spice{ +public class Pepper implements Spice{ String name = "Pepper"; public String getName() { diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java index 1b5cc71..9ab865b 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java @@ -3,5 +3,5 @@ /** * @author leon on 27/12/2018. */ -public abstract class Spice { +public interface Spice { } From 6319359c4b6e48c4883871d6ee40d8fa3cc2c4ed Mon Sep 17 00:00:00 2001 From: DavidKellyonGitHub Date: Sat, 21 Mar 2020 13:40:24 -0400 Subject: [PATCH 3/3] all tests pass --- .../quiz4/collections/culonary/Curry.java | 9 +++---- .../quiz4/collections/culonary/Food.java | 24 ++++++++++--------- .../quiz4/collections/culonary/Ginger.java | 6 +++++ .../quiz4/collections/culonary/Pepper.java | 5 +++- .../quiz4/collections/culonary/Spice.java | 1 + 5 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java index a0b9841..a608306 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java @@ -3,11 +3,12 @@ public class Curry implements Spice{ String name = "Curry"; - public Curry(){ - } - public String getName(){ return this.name; } -} + public void setName(String name) { + this.name = name; + } + +} \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java index 903109a..420def4 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java @@ -7,28 +7,30 @@ /** * @author leon on 27/12/2018. */ -public class Food { - ArrayList added; +public class Food { + ArrayList added; public Food(){ - this.added = new ArrayList(); + this.added = new ArrayList(); } - public List getAllSpices() { + public List getAllSpices() { return added; } public > Map getSpiceCount() { -// HashMap spiceMap = new HashMap<>(); -// for(SpiceType spice : added){ -// spiceMap.put(spice, Collections.frequency(added, spice)); -// -// } + HashMap spiceMap = new HashMap<>(); + for(Spice currentSpice : added){ + //achieved casting w/ help from classmate + SpiceType spice = (SpiceType)currentSpice.getClass(); + spiceMap.put(spice,added.size()); + } + System.out.println(spiceMap.keySet()); - return null; + return spiceMap; } - public void applySpice(T spice) { + public void applySpice(Spice spice) { added.add(spice); } } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java index e05167a..fc4a4a0 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java @@ -6,7 +6,13 @@ public class Ginger implements Spice{ String name = "Ginger"; + public String getName(){ return this.name; } + + public void setName(String name) { + this.name = name; + } + } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java index d67d50b..7146b94 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java @@ -6,8 +6,11 @@ public class Pepper implements Spice{ String name = "Pepper"; + public String getName() { return this.name; } -} + public void setName(String name) { + this.name = name; + }} diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java index 9ab865b..72b830e 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Spice.java @@ -4,4 +4,5 @@ * @author leon on 27/12/2018. */ public interface Spice { + }