diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 6deaf61..8a879b7 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,39 @@ 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(a.size()/2); +// return a.toArray(new String[0]); + String[] arr = new String [values.length-1]; + for (int i = 0; i < values.length-1 ; i++) { + if(i map; public WordCounter(String... strings) { + map = new HashMap<>(); + for (String s :strings) { + if(map.containsKey(s)) + map.replace(s, map.get(s)+1); + else + map.put(s,1); + } } public Map getWordCountMap() { - return null; + return map; } } 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..de12542 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,8 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { +public class Curry implements Spice{ + @Override + public String getName() { + return this.getClass().getSimpleName(); + } } 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..2fd8832 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,29 @@ * @author leon on 27/12/2018. */ public class Food { + + Map, Integer> map; + List l; + + public Food(){ + map = new HashMap<>(); + l = new ArrayList<>(); + } + public List getAllSpices() { - return null; + return l; } - public > Map getSpiceCount() { - return null; + public Map, Integer> getSpiceCount() { + return map; } public void applySpice(Spice spice) { + l.add(spice); + if(map.containsKey(spice.getClass())) { + map.replace(spice.getClass(), map.get(spice.getClass()) + 1); + }else { + map.put(spice.getClass(), 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..2690578 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,9 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger implements Spice{ + @Override + public String getName() { + return this.getClass().getSimpleName(); + } } 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..be89b6b 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,9 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { +public class Pepper implements Spice{ + @Override + public String getName() { + return this.getClass().getSimpleName(); + } } 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..a3b8edb 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,6 @@ /** * @author leon on 27/12/2018. */ -public interface Spice { +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..5291c54 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -1,35 +1,43 @@ 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 value*value; } public static Double[] squareRoots(Double... value) { - return null; + Double[] num = Arrays.copyOf(value,value.length ); + for (int i = 0; i < value.length ; i++) + num[i] = squareRoot(num[i]); + return num; } public static Double[] squares(Double... values) { - return null; + Double[] num = Arrays.copyOf(values,values.length ); + for (int i = 0; i < values.length ; i++) + num[i] = square(num[i]); + return num; } 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..a991ea5 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.Arrays; + /** * @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; + return str.substring(0,str.length()/2) + + Character.toUpperCase(getMiddleCharacter(str)) + + str.substring(str.length()/2 +1, str.length()); } public static String lowerCaseMiddleCharacter(String str) { - return null; + return str.substring(0,str.length()/2) + + Character.toLowerCase(getMiddleCharacter(str)) + + str.substring(str.length()/2 +1, str.length()); } public static Boolean isIsogram(String str) { - return null; + int len = str.length(); + + char[] arr = str.toCharArray(); + + Arrays.sort(arr); + for (int i = 0; i < len - 1; i++) { + if (arr[i] == arr[i + 1]) + return false; + } + return true; } public static Boolean hasDuplicateConsecutiveCharacters(String str) { - return null; + char[] c = str.toCharArray(); + char temp = c[0]; + for (int i = 1; i < str.length(); i++) { + if(temp != c[i]) + temp = c[i]; + else + return true; + } + return false; } public static String removeConsecutiveDuplicateCharacters(String str) { - return null; + char[] c = str.toCharArray(); + char temp = c[0]; + StringBuilder s = new StringBuilder(c[0] + ""); + int count = 0; + + for (int i = 1; i < str.length(); i++) { + if(temp != c[i]) { + temp = c[i]; + s.append(temp); + count = 0; + }else{ + if(count==0){ + s = new StringBuilder(s.substring(0, s.length() - 1)); + count++; + } + } + } + + return s.toString(); } public static String invertCasing(String str) { - return null; + StringBuilder newStr = new StringBuilder(); + for (char c:str.toCharArray()) { + if(Character.isUpperCase(c)) + newStr.append(Character.toLowerCase(c)); + else if (Character.isLowerCase(c)) + newStr.append(Character.toUpperCase(c)); + else + newStr.append(c); + } + return newStr.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..882a478 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..3de91e5 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,24 @@ package rocks.zipcode.quiz4.objectorientation.account; +import java.util.ArrayList; + /** * @author leon on 27/12/2018. */ public class Bank { + ArrayList list = new ArrayList<>(); + public BankAccount removeBankAccountByIndex(Integer indexNumber) { - return null; + int i = indexNumber; + return list.remove(i); } public void addBankAccount(BankAccount bankAccount) { + list.add(bankAccount); } public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + //throw new UnsupportedOperationException("Method not yet implemented"); + return list.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..5e704b3 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,34 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount extends Account implements Transactable { + Double balance; + + + public BankAccount(){ + balance = 0.0; + } public void setBalance(Double val) { + balance = val; } + + @Override + public void deposit(Double amountToIncreaseBy) { + if(amountToIncreaseBy < 0 ) + throw new IllegalArgumentException(); + balance += amountToIncreaseBy; + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if(amountToDecreaseBy < 0 || balance - amountToDecreaseBy<0 ) + throw new IllegalArgumentException(); + + balance -= amountToDecreaseBy; + } + + 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..1d445ee 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,61 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker, Transactable { + BankAccount bankAccount; + Double hoursWorked; + Double hourlyWage; + public Employee() { + this(new BankAccount()); } public Employee(BankAccount bankAccount) { + hourlyWage = 35.0; + hoursWorked = 0.0; + this.bankAccount = bankAccount; } 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 hourlyWage; + } + + @Override + public Double getMoneyEarned() { + return hourlyWage*hoursWorked; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + bankAccount.setBalance( bankAccount.getBalance() + amountToIncreaseBy); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + bankAccount.setBalance( bankAccount.getBalance() - amountToDecreaseBy); + } + @Override + public Double getBalance() { + return bankAccount.getBalance(); } }