diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 6deaf61..1d170d4 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,32 @@ 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[] result = new String [values.length-1]; + int count = 0; + for(String element : values) { + if(!element.equals(getMiddleElement((values)))) { + result[count] = element; + count++; + } + } + return result; } public static String getLastElement(String[] values) { - return null; + return values[values.length - 1]; } public static String[] removeLastElement(String[] values) { - return null; + return Arrays.copyOf(values, values.length-1); } } \ 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..8550996 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -1,12 +1,22 @@ package rocks.zipcode.quiz4.collections; +import java.util.HashMap; import java.util.Map; public class WordCounter { + private Map map = new HashMap<>(); public WordCounter(String... strings) { + for(String str : strings){ + if(map.get(str) != null){ + Integer value = map.get(str); + value++; + map.replace(str, value); + }else{ + map.put(str, 1); + } + } } - public Map getWordCountMap() { - return null; + return map; } -} +} \ No newline at end of file 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..da48df8 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 implements Spice { + @Override + public String getName() { + return "Curry"; + } } + + 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..72868ca 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,36 @@ package rocks.zipcode.quiz4.collections.culonary; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author leon on 27/12/2018. */ public class Food { + private Map, Integer> spiceMap; + private List spiceList; + + public Food() { + spiceMap = new HashMap<>(); + spiceList = new ArrayList<>(); + } + public List getAllSpices() { - return null; + return spiceList; } - public > Map getSpiceCount() { - return null; + public Map, Integer> getSpiceCount() { + return spiceMap; } public void applySpice(Spice spice) { + spiceList.add(spice); + + if(!spiceMap.containsKey((spice.getClass()))){ + spiceMap.put(spice.getClass(), 1); + } else { + Integer newAmount = spiceMap.get(spice.getClass()); + spiceMap. put(spice.getClass(), newAmount + 1); + } } } + 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..117d12a 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 implements Spice { + + @Override + public String getName() { + return null; + } } 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..e2dc086 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 implements Spice{ + + @Override + public String getName() { + return null; + } } + 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..f293239 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,6 @@ * @author leon on 27/12/2018. */ public interface Spice { + +String getName(); } diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java index 02f2618..f659a58 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -5,31 +5,38 @@ */ 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[] result = new Double[value.length]; + for(int i = 0; i < value.length; i++) { + result[i] = Math.sqrt(value[i]); + } + return result; } public static Double[] squares(Double... values) { - return null; + Double[] result = new Double[values.length]; + for (int i = 0; i < values.length; i++) { + result[i] = values[i] * values[i]; + } + return 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; + 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..e58faa4 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,83 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.ArrayList; +import java.util.Arrays; + /** * @author leon on 21/12/2018. */ public class StringUtils { public static Character getMiddleCharacter(String string) { - return null; + if (string.length() % 2 == 0) { + return string.charAt((string.length() / 2) - 1); + } else { + return string.charAt(string.length() / 2); + } } public static String capitalizeMiddleCharacter(String str) { - return null; + String result = ""; + result = getMiddleCharacter(str).toString().toUpperCase(); + + return str.substring(0, str.length() / 2) + result + str.substring((str.length() / 2 + 1)); } public static String lowerCaseMiddleCharacter(String str) { - return null; + String result = ""; + result = getMiddleCharacter(str).toString().toLowerCase(); + return str.substring(0, str.length() / 2) + result + str.substring((str.length() / 2 + 1)); } public static Boolean isIsogram(String str) { - return null; + char[] array = str.toCharArray(); + Arrays.sort(array); + + for (int i = 0; i < array.length - 1; i++) + if (array[i] == array[i + 1]) + return false; + + return true; } + /*for (int i = 0; i < str.length() - 1; i++) { + for (int j = 0; 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; + String output = ""; + + if (str.charAt(0) != str.charAt(1)) output += str.charAt(0); + + for (int i = 1; i < str.length() - 1; i++) { + if (str.charAt(i) != str.charAt(i + 1) && str.charAt(i) != str.charAt(i - 1)) output += str.charAt(i); + } + + if (str.charAt(str.length() - 1) != str.charAt(str.length() - 2)) output += str.charAt(str.length() - 1); + return output; } public static String invertCasing(String str) { - return null; + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < str.length(); i++) { + + if (Character.isUpperCase(str.charAt(i))) { + sb.append(Character.toLowerCase(str.charAt(i))); + } else { + sb.append(Character.toUpperCase(str.charAt(i))); + } + } + return sb.toString(); } -} \ 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..774761b 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,22 @@ /** * @author leon on 30/12/2018. */ -public class Account extends BankAccount { - public Long getId() { - return null; - } +public class Account { + + Long id; + + public Account() { + } + + public Account(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } - public void setId(Long 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..2757974 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,21 @@ 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; - } + private List accounts = new ArrayList<>(); - public void addBankAccount(BankAccount bankAccount) { - } + public BankAccount removeBankAccountByIndex(int indexNumber) { return accounts.remove(indexNumber); } + + public void addBankAccount(BankAccount bankAccount) { + accounts.add(bankAccount); + } - public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + public Boolean containsBankAccount(BankAccount bankAccount) { + return accounts.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..99b6d20 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,36 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { - public void setBalance(Double val) { +public class BankAccount extends Account implements Transactable{ + + private Double balance; + + public BankAccount() { + this.balance = 0.0; + } + + public void setBalance(Double balance) { + this.balance = balance; + } + + @Override + public void deposit(Double amountToIncreaseBy) throws IllegalArgumentException{ + if(amountToIncreaseBy < 0){ + throw new IllegalArgumentException(); + } + balance+=amountToIncreaseBy; + } + + @Override + public void withdrawal(Double amountToDecreaseBy) throws IllegalArgumentException { + if (balance <= 0 || amountToDecreaseBy <= 0|| amountToDecreaseBy > balance) { + throw new IllegalArgumentException(); + } + 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..ec81ece 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,62 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker,Transactable{ + + private BankAccount bankAccount; + private Double hoursWorked; + private Double wage; + public Employee() { + this(new BankAccount()); } public Employee(BankAccount bankAccount) { + this.bankAccount = bankAccount; + hoursWorked = 0.0; + this.wage = 35.0; } public BankAccount getBankAccount() { - return null; + return bankAccount; } public void setBankAccount(BankAccount bankAccount) { + this.bankAccount=bankAccount; + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + hoursWorked+=numberOfHours; + } + + @Override + public Double getHoursWorked() { + return hoursWorked; + } + + @Override + public Double getHourlyWage() { + return wage; + } + + @Override + public Double getMoneyEarned() { + return getMoneyEarned(); + } + + @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(); } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java index 0f05f7e..7c64293 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Worker.java @@ -8,4 +8,6 @@ public interface Worker { Double getHoursWorked(); Double getHourlyWage(); Double getMoneyEarned(); + BankAccount getBankAccount(); + void setBankAccount(BankAccount bankAccount); }