From 7fedbc0d2e281e58c14395fc32682ab8f9a7b96b Mon Sep 17 00:00:00 2001 From: asconem Date: Fri, 20 Mar 2020 14:27:01 -0400 Subject: [PATCH 1/9] Saving progress through ArrayUtils --- .../zipcode/quiz4/arrays/ArrayUtils.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 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..9e3313e 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,35 @@ package rocks.zipcode.quiz4.arrays; +import java.util.ArrayList; +import java.util.Arrays; + /** * @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[] removeMiddleElement(String[] values) { - return null; + + ArrayList a = new ArrayList<>(Arrays.asList(values)); + a.remove(getMiddleElement(values)); + values = new String[a.size()]; + a.toArray(values); + return values; } public static String getLastElement(String[] values) { - return null; + + return values[values.length - 1]; } public static String[] removeLastElement(String[] values) { - return null; + ArrayList a = new ArrayList<>(Arrays.asList(values)); + a.remove(getLastElement(values)); + values = new String[a.size()]; + a.toArray(values); + return values; } } \ No newline at end of file From 5f8cf1df93e301ac65b016a5016046161133087d Mon Sep 17 00:00:00 2001 From: asconem Date: Fri, 20 Mar 2020 14:31:04 -0400 Subject: [PATCH 2/9] Saving progress through ArrayUtils --- .../rocks/zipcode/quiz4/arrays/ArrayUtils.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 9e3313e..d3b1406 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -13,10 +13,10 @@ public static String getMiddleElement(String[] values) { public static String[] removeMiddleElement(String[] values) { - ArrayList a = new ArrayList<>(Arrays.asList(values)); - a.remove(getMiddleElement(values)); - values = new String[a.size()]; - a.toArray(values); + ArrayList newArr = new ArrayList<>(Arrays.asList(values)); + newArr.remove(getMiddleElement(values)); + values = new String[newArr.size()]; + newArr.toArray(values); return values; } @@ -26,10 +26,10 @@ public static String getLastElement(String[] values) { } public static String[] removeLastElement(String[] values) { - ArrayList a = new ArrayList<>(Arrays.asList(values)); - a.remove(getLastElement(values)); - values = new String[a.size()]; - a.toArray(values); + ArrayList newArr = new ArrayList<>(Arrays.asList(values)); + newArr.remove(getLastElement(values)); + values = new String[newArr.size()]; + newArr.toArray(values); return values; } } \ No newline at end of file From ee0231d065547cdf9c3140697b83a24fc908e8e9 Mon Sep 17 00:00:00 2001 From: asconem Date: Fri, 20 Mar 2020 14:42:37 -0400 Subject: [PATCH 3/9] Saving progress through calculator --- .../zipcode/quiz4/arrays/ArrayUtils.java | 12 ++++++---- .../quiz4/fundamentals/Calculator.java | 23 +++++++++++++------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index d3b1406..7b54e65 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -26,10 +26,12 @@ public static String getLastElement(String[] values) { } public static String[] removeLastElement(String[] values) { - ArrayList newArr = new ArrayList<>(Arrays.asList(values)); - newArr.remove(getLastElement(values)); - values = new String[newArr.size()]; - newArr.toArray(values); - return values; +// ArrayList newArr = new ArrayList<>(Arrays.asList(values)); +// newArr.remove(getLastElement(values)); +// values = new String[newArr.size()]; +// newArr.toArray(values); +// return values; + + return Arrays.copyOfRange(values,0,values.length - 1); } } \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java index 02f2618..598eebd 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -5,31 +5,40 @@ */ public class Calculator { public static Double squareRoot(Double value) { - return null; + + return Math.sqrt(value); } public static Double square(Double value) { - return null; + return value*value; } public static Double[] squareRoots(Double... value) { - return null; + Double[] sqArr = new Double[value.length]; + for(int i = 0; i < value.length; i++){ + sqArr[i] = Math.sqrt(value[i]); + } + return sqArr; } public static Double[] squares(Double... values) { - return null; + Double[] sqArr = new Double[values.length]; + for(int i = 0; i < values.length; i++){ + sqArr[i] = (values[i] * values[i]); + } + return sqArr; } 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; } } From 30a0ceeb73aeba36812dddc73f76ea6db53de1a0 Mon Sep 17 00:00:00 2001 From: asconem Date: Sat, 21 Mar 2020 21:57:04 -0400 Subject: [PATCH 4/9] Finished with StringUtils --- .../quiz4/fundamentals/StringUtils.java | 55 ++++++++++++++++--- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index 5ec61be..3dc6437 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,75 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.ArrayList; + /** * @author leon on 21/12/2018. */ public class StringUtils { public static Character getMiddleCharacter(String string) { - return null; + return string.charAt(string.length()/2); } public static String capitalizeMiddleCharacter(String str) { - return null; + Integer middleIndex = str.length()/2; + return str.substring(0,middleIndex) + + str.substring(middleIndex, middleIndex+1).toUpperCase() + + str.substring(middleIndex+1); } public static String lowerCaseMiddleCharacter(String str) { - return null; + Integer middleIndex = str.length()/2; + return str.substring(0,middleIndex) + + str.substring(middleIndex, middleIndex+1).toLowerCase() + + str.substring(middleIndex+1); } public static Boolean isIsogram(String str) { - return null; + for(int i = 0; i < str.length()-1; i++){ + for(int j = i+1; j < str.length(); j++){ + if (str.charAt(i) == str.charAt(j)) return false; + } + } + return true; } public static Boolean hasDuplicateConsecutiveCharacters(String str) { - return null; + for (int i = 0; i < str.length()-1; i++){ + if (str.charAt(i) == str.charAt(i+1)) return true; + } + return false; } public static String removeConsecutiveDuplicateCharacters(String str) { - return null; + ArrayList removed = new ArrayList<>(); + for (int i = 0; i < str.length() - 1; i++) { + if(str.charAt(i) == str.charAt(i+1)) { + String remove = str.substring(i, i+2); + removed.add(remove); + } + } + + String newString = str; + for (String s: removed) { + newString = newString.replace(s, ""); + } + + return newString; } public static String invertCasing(String str) { - return null; + StringBuilder newStr = new StringBuilder(); + for (int i = 0; i < str.length(); i++) { + if(Character.isUpperCase(str.charAt(i))) { + newStr.append(Character.toLowerCase(str.charAt(i))); + } else if(Character.isLowerCase(str.charAt(i))) { + newStr.append(Character.toUpperCase(str.charAt(i))); + } else { + newStr.append(str.charAt(i)); + } + } + + return newStr.toString(); + } } \ No newline at end of file From fc401a269e793792e8c58db8196fde7c077aad5e Mon Sep 17 00:00:00 2001 From: asconem Date: Sat, 21 Mar 2020 22:04:29 -0400 Subject: [PATCH 5/9] Working on object orientation --- .../objectorientation/account/Account.java | 8 ++++-- .../quiz4/objectorientation/account/Bank.java | 16 +++++++++-- .../account/BankAccount.java | 27 ++++++++++++++++++- 3 files changed, 46 insertions(+), 5 deletions(-) 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..519d168 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,15 @@ /** * @author leon on 30/12/2018. */ -public class Account extends BankAccount { +public class Account { + private Long id; + + public Long getId() { - return null; + return this.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..b58239a 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); + } } 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..6e1283e 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,32 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount extends Account implements Transactable{ + + private Double balance; + public void setBalance(Double val) { + this.balance = val; + } + + public BankAccount(){ + this.balance = 0.00; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if (amountToIncreaseBy >= 0) setBalance(getBalance() + amountToIncreaseBy); + else throw new IllegalArgumentException(); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if (amountToDecreaseBy < 0 || amountToDecreaseBy > getBalance()) throw new IllegalArgumentException(); + setBalance(getBalance() - amountToDecreaseBy); + } + + @Override + public Double getBalance() { + return this.balance; } } From 91202454bea60fca2dc081e55ebed82758f8c825 Mon Sep 17 00:00:00 2001 From: asconem Date: Sat, 21 Mar 2020 22:11:24 -0400 Subject: [PATCH 6/9] Completed employee class --- .../objectorientation/account/Employee.java | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) 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..b69fb45 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,63 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Transactable, Worker{ + BankAccount bankAccount; + Double hoursWorked; + Double hourlyWage; + public Employee() { + bankAccount = new BankAccount(); + hourlyWage = 35.0; + hoursWorked = 0.0; } public Employee(BankAccount bankAccount) { + this.bankAccount = bankAccount; + hourlyWage = 35.0; + hoursWorked = 0.0; } public BankAccount getBankAccount() { - return null; + return bankAccount; } public void setBankAccount(BankAccount bankAccount) { + this.bankAccount = bankAccount; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + bankAccount.deposit(amountToIncreaseBy); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + bankAccount.withdrawal(amountToDecreaseBy); + } + + @Override + public Double getBalance() { + return bankAccount.getBalance(); + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + hoursWorked = hoursWorked + numberOfHours; + } + + @Override + public Double getHoursWorked() { + return hoursWorked; + } + + @Override + public Double getHourlyWage() { + return hourlyWage; + } + @Override + public Double getMoneyEarned() { + return hourlyWage * hoursWorked; } } From 41cd4a46dd835f60d408bf34854616fc68760d1b Mon Sep 17 00:00:00 2001 From: asconem Date: Sun, 22 Mar 2020 16:33:01 -0400 Subject: [PATCH 7/9] Word counter complete --- .../quiz4/collections/WordCounter.java | 14 +++++++++++- .../quiz4/fundamentals/StringUtils.java | 22 ++++++++++--------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index 2bf5ec2..dd87157 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -1,12 +1,24 @@ package rocks.zipcode.quiz4.collections; +import java.util.HashMap; import java.util.Map; public class WordCounter { + + private HashMap wordCount = new HashMap<>(); + public WordCounter(String... strings) { + for(String string : strings){ + if(!this.wordCount.keySet().contains(string)){ + this.wordCount.put(string, 1); + } + else { + this.wordCount.replace(string, this.wordCount.get(string) + 1); + } + } } public Map getWordCountMap() { - return null; + return this.wordCount; } } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index 3dc6437..d2b142b 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -11,23 +11,24 @@ public static Character getMiddleCharacter(String string) { } public static String capitalizeMiddleCharacter(String str) { - Integer middleIndex = str.length()/2; - return str.substring(0,middleIndex) + - str.substring(middleIndex, middleIndex+1).toUpperCase() + - str.substring(middleIndex+1); + Integer middle = str.length()/2; + return str.substring(0,middle) + + str.substring(middle, middle+1).toUpperCase() + + str.substring(middle+1); } public static String lowerCaseMiddleCharacter(String str) { - Integer middleIndex = str.length()/2; - return str.substring(0,middleIndex) + - str.substring(middleIndex, middleIndex+1).toLowerCase() + - str.substring(middleIndex+1); + Integer middle = str.length()/2; + return str.substring(0,middle) + + str.substring(middle, middle+1).toLowerCase() + + str.substring(middle+1); } public static Boolean isIsogram(String str) { for(int i = 0; i < str.length()-1; i++){ for(int j = i+1; j < str.length(); j++){ - if (str.charAt(i) == str.charAt(j)) return false; + if (str.charAt(i) == str.charAt(j)) + return false; } } return true; @@ -35,7 +36,8 @@ public static Boolean isIsogram(String str) { public static Boolean hasDuplicateConsecutiveCharacters(String str) { for (int i = 0; i < str.length()-1; i++){ - if (str.charAt(i) == str.charAt(i+1)) return true; + if (str.charAt(i) == str.charAt(i+1)) + return true; } return false; } From 07232fb696bce8a1d2cb9649ddf397104b465c93 Mon Sep 17 00:00:00 2001 From: asconem Date: Sun, 22 Mar 2020 16:34:38 -0400 Subject: [PATCH 8/9] Word counter complete --- .../java/rocks/zipcode/quiz4/collections/WordCounter.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index dd87157..a1431d9 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -8,12 +8,12 @@ public class WordCounter { private HashMap wordCount = new HashMap<>(); public WordCounter(String... strings) { - for(String string : strings){ - if(!this.wordCount.keySet().contains(string)){ - this.wordCount.put(string, 1); + for(String str : strings){ + if(!this.wordCount.keySet().contains(str)){ + this.wordCount.put(str, 1); } else { - this.wordCount.replace(string, this.wordCount.get(string) + 1); + this.wordCount.replace(str, this.wordCount.get(str) + 1); } } } From 2e9d4bcad11efb7741d5e3d43818e0207f8fac18 Mon Sep 17 00:00:00 2001 From: asconem Date: Sun, 22 Mar 2020 17:14:19 -0400 Subject: [PATCH 9/9] Finished --- .../quiz4/collections/culonary/Curry.java | 19 ++++++++++++++- .../quiz4/collections/culonary/Food.java | 23 +++++++++++++++++-- .../quiz4/collections/culonary/Ginger.java | 19 ++++++++++++++- .../quiz4/collections/culonary/Pepper.java | 19 ++++++++++++++- 4 files changed, 75 insertions(+), 5 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 199cefc..0649b71 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,21 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { +public class Curry implements Spice{ + String name; + + public Curry() { + this.name = null; + } + + public Curry(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = 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..607b210 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java @@ -1,5 +1,7 @@ package rocks.zipcode.quiz4.collections.culonary; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -7,14 +9,31 @@ * @author leon on 27/12/2018. */ public class Food { + + List spices; + + public Food() { + this.spices = new ArrayList<>(); + } + public List getAllSpices() { - return null; + return spices; } public > Map getSpiceCount() { - return null; + Map spiceCountMap = new HashMap<>(); + for (Spice spice : spices) { + SpiceType type = (SpiceType) spice.getClass(); + if(spiceCountMap.putIfAbsent(type, 1) != null) { + Integer count = spiceCountMap.get(type) + 1; + spiceCountMap.replace(type, count); + } + } + return spiceCountMap; } public void applySpice(Spice spice) { + spices.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..49b4f18 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,22 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger implements Spice{ + String name; + + public Ginger() { + this.name = null; + } + + public Ginger(String name) { + this.name = name; + } + + public String getName() { + return 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 4b771a8..372bf1d 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,22 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { +public class Pepper implements Spice{ + String name; + + public Pepper() { + this.name = null; + } + + public Pepper(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } }