From 8d088016d53144a6856b23f52165957fa74baade Mon Sep 17 00:00:00 2001 From: Mike King Date: Mon, 9 Dec 2019 19:12:05 -0500 Subject: [PATCH 1/4] ArrayUtils done --- .../zipcode/quiz4/arrays/ArrayUtils.java | 24 +++++++++++++++---- 1 file changed, 20 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..360fe80 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,38 @@ package rocks.zipcode.quiz4.arrays; +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; + String[] newArray = new String[values.length-1]; + int count = 0; + for (int i = 0; i < values.length; i++) { + if (values[i] != getMiddleElement(values)){ + newArray[count] = values[i]; + count++; + } + } + return newArray; } public static String getLastElement(String[] values) { - return null; + + return values[values.length -1]; } public static String[] removeLastElement(String[] values) { - return null; + String[] newArray = new String[values.length -1]; + for (int i = 0; i < newArray.length; i++) { + newArray[i] = values[i]; + } + return newArray; } } \ No newline at end of file From f990ec3e2ad0c75999cda5739824582fdb5e94a0 Mon Sep 17 00:00:00 2001 From: Mike King Date: Mon, 9 Dec 2019 20:10:28 -0500 Subject: [PATCH 2/4] Done with collections --- .../quiz4/collections/WordCounter.java | 16 +++++++++++++++- .../quiz4/collections/culonary/Curry.java | 14 +++++++++++++- .../quiz4/collections/culonary/Food.java | 19 +++++++++++++++++-- .../quiz4/collections/culonary/Ginger.java | 14 +++++++++++++- .../quiz4/collections/culonary/Pepper.java | 14 +++++++++++++- 5 files changed, 71 insertions(+), 6 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..14a647e 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -1,12 +1,26 @@ package rocks.zipcode.quiz4.collections; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.Map; public class WordCounter { + ArrayList strings = new ArrayList<>(); + public WordCounter(String... strings) { + this.strings.addAll(Arrays.asList(strings)); } public Map getWordCountMap() { - return null; + Map newMap = new HashMap<>(); + for (String s : strings) { + if (!newMap.containsKey(s)){ + newMap.put(s, 1); + }else{ + newMap.put(s, newMap.get(s) + 1); + } + } + return newMap; } } 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..2c89e9e 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,16 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { +public class Curry implements Spice{ + private String name; + + public Curry(String name) { + this.name = name; + } + + public Curry() { + } + + public String getName() { + return 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..a02f948 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,27 @@ * @author leon on 27/12/2018. */ public class Food { + + List spices = new ArrayList<>(); + public List getAllSpices() { - return null; + return spices; } public > Map getSpiceCount() { - return null; + Map, Integer> spiceMap = new HashMap<>(); + + for (int i = 0; i < spices.size(); i++) { + if (!spiceMap.containsKey(spices.get(i).getClass())){ + spiceMap.put(spices.get(i).getClass(), 1); + }else{ + spiceMap.put(spices.get(i).getClass(), spiceMap.get(spices.get(i).getClass()) + 1); + } + } + return (Map) spiceMap; } 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..6b124a0 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,17 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger implements Spice{ + private String name; + + public Ginger(String name) { + this.name = name; + } + + public Ginger() { + } + + public String getName() { + return 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..82f4c91 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,17 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { +public class Pepper implements Spice{ + private String name; + + public Pepper(String name) { + this.name = name; + } + + public Pepper() { + } + + public String getName() { + return name; + } } From 392f62e5f0ef76b82e09412dd9ca11c0bf241b27 Mon Sep 17 00:00:00 2001 From: Mike King Date: Mon, 9 Dec 2019 22:13:13 -0500 Subject: [PATCH 3/4] finished fundementals --- .../quiz4/fundamentals/Calculator.java | 24 +++++-- .../quiz4/fundamentals/StringUtils.java | 64 +++++++++++++++++-- 2 files changed, 74 insertions(+), 14 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java index 02f2618..d5fbb10 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -5,31 +5,41 @@ */ 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[] squareRoots = new Double[value.length]; + for (int i = 0; i < value.length; i++) { + squareRoots[i] = squareRoot(value[i]); + } + + + return squareRoots; } public static Double[] squares(Double... values) { - return null; + Double[] squares = new Double[values.length]; + for (int i = 0; i < squares.length; i++) { + squares[i] = square(values[i]); + } + return squares; } 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..d0afeb1 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,84 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.HashSet; +import java.util.Set; + /** * @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; + String answer = ""; + for (int i = 0; i < str.length(); i++) { + if (i == str.length() / 2) { + answer += Character.toUpperCase(str.charAt(i)); + } else { + answer += str.charAt(i); + } + } + return answer; } public static String lowerCaseMiddleCharacter(String str) { - return null; + String answer = ""; + for (int i = 0; i < str.length(); i++) { + if (i == str.length() / 2) { + answer += Character.toLowerCase(str.charAt(i)); + } else { + answer += str.charAt(i); + } + } + return answer; } + public static Boolean isIsogram(String str) { - return null; + Set isogramChecker = new HashSet<>(); + for (int i = 0; i < str.length(); i++) { + isogramChecker.add(str.charAt(i)); + } + return isogramChecker.size() == str.length(); } 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; + String answer = ""; + for (int i = 0; i < str.length() - 1; i++) { + if (i == 0) { + answer = "" + str.charAt(i); + } else { + if (str.charAt(i - 1) != str.charAt(i) && str.charAt(i + 1) != str.charAt(i)) { + answer = answer + str.charAt(i); + } + } + } + answer += str.charAt(str.length() - 1); + + return answer; } public static String invertCasing(String str) { - return null; + String answer = ""; + for (int i = 0; i < str.length(); i++) { + if (Character.isLowerCase(str.charAt(i))) { + answer += Character.toUpperCase(str.charAt(i)); + } else { + answer += Character.toLowerCase(str.charAt(i)); + } + } + return answer; } } \ No newline at end of file From eb6a2385594edebf693d4852d885f9f279684dd2 Mon Sep 17 00:00:00 2001 From: Mike King Date: Mon, 9 Dec 2019 23:55:42 -0500 Subject: [PATCH 4/4] Finished --- .../objectorientation/account/Account.java | 8 ++- .../quiz4/objectorientation/account/Bank.java | 18 +++++- .../account/BankAccount.java | 25 ++++++++- .../objectorientation/account/Employee.java | 55 ++++++++++++++++++- 4 files changed, 98 insertions(+), 8 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..972a4af 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 { + Long id; 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..1732393 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,31 @@ package rocks.zipcode.quiz4.objectorientation.account; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * @author leon on 27/12/2018. */ public class Bank { + Integer AccId = 0; + Map bankAccounts = new HashMap<>(); public BankAccount removeBankAccountByIndex(Integer indexNumber) { - return null; + return bankAccounts.remove(indexNumber); } public void addBankAccount(BankAccount bankAccount) { + bankAccounts.put(AccId, bankAccount); + AccId++; } public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + for (int i = 0; i < bankAccounts.size(); i++) { + if (bankAccounts.get(i) == bankAccount){ + return true; + } + } + return false; } } 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..de44c55 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,30 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount extends Account implements Transactable{ + Double balance =0.0; public void setBalance(Double val) { + this.balance = val; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if(amountToIncreaseBy >= 0){this.balance += amountToIncreaseBy; + }else{ + throw new IllegalArgumentException(); + } + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if(balance >= amountToDecreaseBy && amountToDecreaseBy >= 0){this.balance -= amountToDecreaseBy; + }else{ + throw new IllegalArgumentException(); + } + } + + @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..423df45 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,67 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker, Transactable{ + Double hourlyWage; + Double hoursWorked; + Double balance; + BankAccount bankAccount = new BankAccount(); public Employee() { + hourlyWage = 35.0; + hoursWorked = 0.0; + balance = 0.0; + bankAccount.setBalance(0.0);; } public Employee(BankAccount bankAccount) { + hourlyWage = 35.0; + hoursWorked = 0.0; + balance = 15.0; + this.setBankAccount(bankAccount); } public BankAccount getBankAccount() { - return null; + return this.bankAccount; } - public void setBankAccount(BankAccount bankAccount) { + public void setBankAccount(BankAccount incbankAccount) { + this.bankAccount = incbankAccount; + this.balance = this.bankAccount.getBalance(); + } + + @Override + public void deposit(Double amountToIncreaseBy) { + balance += amountToIncreaseBy; + bankAccount.deposit(amountToIncreaseBy); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + bankAccount.withdrawal(amountToDecreaseBy); + } + + @Override + public Double getBalance() { + return balance; + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + hoursWorked += numberOfHours; + } + + @Override + public Double getHoursWorked() { + return hoursWorked; + } + + @Override + public Double getHourlyWage() { + return hourlyWage; + } + @Override + public Double getMoneyEarned() { + return hourlyWage*hoursWorked; } }