diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 6deaf61..d1b995a 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.ArrayList; +import java.util.List; + /** * @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; + + List temp = new ArrayList<>(); + String[] result = new String[0]; + + for (int i = 0; i < values.length; i++){ + if (i != values.length/2) temp.add(values[i]); + } + return temp.toArray(result); } 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 < result.length; i++){ + result[i] = values[i]; + } + return result; } } \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index 2bf5ec2..1bddc0b 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -1,12 +1,29 @@ package rocks.zipcode.quiz4.collections; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; public class WordCounter { + + Map words = new HashMap<>(); + Integer counter; + public WordCounter(String... strings) { + + for (String each : strings){ + counter = words.get(each); + if (counter == null){ + counter = 1; + } else counter ++; + + words.put(each,counter); + } + } public Map getWordCountMap() { - return null; + return words; } } 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..c6b96b4 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,4 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { +public class Curry implements Spice { } 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..09ba6d0 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,26 @@ * @author leon on 27/12/2018. */ public class Food { + + List allSpices = new ArrayList<>(); + public List getAllSpices() { - return null; + + return allSpices; } public > Map getSpiceCount() { - return null; + + Map spiceCountMap = new HashMap<>(); + + SpiceType spice = (SpiceType)this.allSpices.get(0).getClass(); + Integer spiceCount = this.allSpices.size(); + + spiceCountMap.put(spice,spiceCount); + return spiceCountMap; } public void applySpice(Spice spice) { + allSpices.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..ef695be 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,5 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger implements Spice{ } 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..248859f 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,5 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { +public class Pepper implements 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..395274c 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -1,35 +1,58 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.ArrayList; +import java.util.List; + /** * @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 value * value; } public static Double[] squareRoots(Double... value) { - return null; + List array = new ArrayList<>(); + Double[] result = new Double[0]; + + for(Double each : value){ + array.add(Math.sqrt(each)); + } + return array.toArray(result); } public static Double[] squares(Double... values) { - return null; + List array = new ArrayList<>(); + Double[] result = new Double[0]; + + for(Double each : values){ + array.add(each * each); + } + return array.toArray(result); } 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; + + if (dividend == 0){ + return 0.0; + } + 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..6c2a0bb 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,102 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.*; + /** * @author leon on 21/12/2018. */ public class StringUtils { + public static Character getMiddleCharacter(String string) { - return null; + int middle = string.length() / 2; + return string.charAt(middle); } public static String capitalizeMiddleCharacter(String str) { - return null; + String result = ""; + + for (int i = 0; i < str.length(); i++) { + if (i == str.length() / 2) { + result = result.concat(String.valueOf(str.toUpperCase().charAt(i))); + } else { + result = result.concat(String.valueOf(str.charAt(i))); + } + } + + return result; } public static String lowerCaseMiddleCharacter(String str) { - return null; + String result = ""; + + for (int i = 0; i < str.length(); i++) { + if (i == str.length() / 2) { + result = result.concat(String.valueOf(str.toLowerCase().charAt(i))); + } else { + result = result.concat(String.valueOf(str.charAt(i))); + } + } + + return result; } public static Boolean isIsogram(String str) { - return null; + + Set unique = new HashSet<>(); + for (Character c : str.toCharArray()) { + unique.add(c); + } + if (unique.size() == str.length()) { + return true; + } else { + return false; + } } 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 result = str; + + for (int i = 0; i < str.length() - 1; i++){ + if (str.charAt(i) == str.charAt(i+1)){ + result = removedChars(result,str.charAt(i)); + } + } + return result; + } + + private static String removedChars(String str, Character charToRemove){ + String result = str; + + result = result.replace(charToRemove.toString(), ""); + + return result; } public static String invertCasing(String str) { - return null; + String[] temp = str.split(""); + String result = ""; + + for (int i = 0; i < temp.length; i++) { + if (temp[i].toUpperCase().equals(temp[i])) { + temp[i] = temp[i].toLowerCase(); + result = result.concat(temp[i]); + } else if (temp[i].toLowerCase().equals(temp[i])) { + temp[i] = temp[i].toUpperCase(); + result = result.concat(temp[i]); + } else { + result = result.concat(temp[i]); + } + } + + 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..f2e7b46 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..7eff5ff 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,30 @@ package rocks.zipcode.quiz4.objectorientation.account; +import java.util.ArrayList; +import java.util.List; + /** * @author leon on 27/12/2018. */ public class Bank { - public BankAccount removeBankAccountByIndex(Integer indexNumber) { - return null; + + List bankAccounts = new ArrayList<>(); + + public boolean removeBankAccountByIndex(Integer indexNumber) { + BankAccount temp = null; + + if (bankAccounts.size() > 0 && indexNumber <= bankAccounts.size()){ + temp = bankAccounts.get(indexNumber); + bankAccounts.remove(temp); + } + return containsBankAccount(temp); } public void addBankAccount(BankAccount bankAccount) { + bankAccounts.add(bankAccount); } public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + return bankAccounts.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..760d602 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java @@ -1,9 +1,39 @@ package rocks.zipcode.quiz4.objectorientation.account; +import static java.lang.Math.abs; + /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount extends Account implements Transactable{ + + Double accountBalance; + + public BankAccount(){ + this.accountBalance = 0.0; + } + public void setBalance(Double val) { + this.accountBalance =val; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if (amountToIncreaseBy < 0) throw new IllegalArgumentException(); + + accountBalance += amountToIncreaseBy; + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if (abs(amountToDecreaseBy) > this.accountBalance || this.accountBalance == 0){ + throw new IllegalArgumentException(); + } + accountBalance -= amountToDecreaseBy; + } + + @Override + public Double getBalance() { + return this.accountBalance; } } 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..5bae4f7 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,70 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker,Transactable { + + private BankAccount bankAccount; + private Double hoursWorked; + private Double hourlyWage; + public Employee() { + this.hourlyWage = 35.0; + this.hoursWorked = 0.0; + this.bankAccount = new BankAccount(); } public Employee(BankAccount bankAccount) { + this.hourlyWage = 35.0; + this.hoursWorked = 0.0; + this.bankAccount = bankAccount; } public BankAccount getBankAccount() { - return null; + + return this.bankAccount; } public void setBankAccount(BankAccount bankAccount) { + this.bankAccount = bankAccount; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + + if (amountToIncreaseBy > 0) { + this.bankAccount.deposit(amountToIncreaseBy); + } + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + this.bankAccount.withdrawal(amountToDecreaseBy); + } + + @Override + public Double getBalance() { + return this.bankAccount.getBalance(); + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + if (numberOfHours > 0){ + this.hoursWorked = this.hoursWorked + numberOfHours; + } + } + + @Override + public Double getHoursWorked() { + return this.hoursWorked; + } + + @Override + public Double getHourlyWage() { + return this.hourlyWage; + } + @Override + public Double getMoneyEarned() { + return this.hourlyWage * this.hoursWorked; } }