diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 6deaf61..a28d5ea 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,46 @@ package rocks.zipcode.quiz4.arrays; +import java.util.Arrays; +import java.util.Stack; + /** * @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[] addElement(String[] arr, String str){ + String[] result = new String[arr.length+1]; + int counter = 0; + for(String existing : arr){ + result[counter] = existing; + counter++; + } + result[result.length-1] = str; + return result; } public static String[] removeMiddleElement(String[] values) { - return null; + String[] answer = new String[0]; + for (int i = 0; i < values.length;i++){ + if (i!= values.length/2){ + answer = addElement(answer,values[i]); + } + } + return answer; } 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 countMap; + public WordCounter(String... strings) { + this.countMap = new HashMap<>(); + for(String str : strings){ + countMap.put(str,Collections.frequency(Arrays.asList(strings),str)); + } } public Map getWordCountMap() { - return null; + return this.countMap; } } 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..a608306 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,14 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { -} +public class Curry implements Spice{ + String name = "Curry"; + + public String getName(){ + return this.name; + } + + public void setName(String name) { + this.name = name; + } + +} \ No newline at end of file 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..420def4 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.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author leon on 27/12/2018. */ public class Food { - public List getAllSpices() { - return null; + ArrayList added; + + public Food(){ + this.added = new ArrayList(); + + } + public List getAllSpices() { + return added; } public > Map getSpiceCount() { - return null; + HashMap spiceMap = new HashMap<>(); + for(Spice currentSpice : added){ + //achieved casting w/ help from classmate + SpiceType spice = (SpiceType)currentSpice.getClass(); + spiceMap.put(spice,added.size()); + } + System.out.println(spiceMap.keySet()); + + return spiceMap; } public void applySpice(Spice spice) { + added.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..fc4a4a0 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,16 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger implements Spice{ + String name = "Ginger"; + + + public String getName(){ + return this.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..7146b94 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,14 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { -} +public class Pepper implements Spice{ + String name = "Pepper"; + + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + }} 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..72b830e 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,5 @@ * @author leon on 27/12/2018. */ public interface 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..88b7c89 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -1,35 +1,37 @@ 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 Math.pow(value,2); } public static Double[] squareRoots(Double... value) { - return null; + return Arrays.stream(value).map(x -> x = squareRoot(x)).toArray(Double[]::new); } public static Double[] squares(Double... values) { - return null; + return Arrays.stream(values).map(x -> x = square(x)).toArray(Double[]::new); } 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..4e3205e 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,98 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.Arrays; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + /** * @author leon on 21/12/2018. */ public class StringUtils { public static Character getMiddleCharacter(String string) { - return null; + return string.toCharArray()[string.length()/2]; } public static String capitalizeMiddleCharacter(String str) { - return null; + char[] letters = str.toCharArray(); + letters[letters.length/2] = getMiddleCharacter(str).toString().toUpperCase().toCharArray()[0]; + String result = ""; + for(char letter : letters){ + result += letter; + } + return result; } public static String lowerCaseMiddleCharacter(String str) { - return null; + char[] letters = str.toCharArray(); + letters[letters.length/2] = getMiddleCharacter(str).toString().toLowerCase().toCharArray()[0]; + String result = ""; + for(char letter : letters){ + result += letter; + } + return result; } public static Boolean isIsogram(String str) { - return null; + char[] letters = str.toCharArray(); + for(int i = 0;i < letters.length;i++){ + for (int j = i+1; j < letters.length;j++){ + if (letters[i] == letters[j]){ + return false; + } + } + } + return true; } public static Boolean hasDuplicateConsecutiveCharacters(String str) { - return null; + char[] letters = str.toCharArray(); + for (int i = 0;i < letters.length-1;i++){ + if (letters[i] == letters[i+1]){ + return true; + } + } + return false; } public static String removeConsecutiveDuplicateCharacters(String str) { - return null; + int dupeCounter = 0; + char[] letters = str.toCharArray(); + String result = ""; + for (int i = 0;i< letters.length-1;i++){ + int j = i+1; + dupeCounter = 0; + while (letters[i]==letters[j] && j < letters.length) { + dupeCounter++; + j++; + } + if (dupeCounter > 0){ + for (int d = i; d <= i+dupeCounter; d++){ + letters[d] = '5'; + } + } + } + for (char letter : letters){ + if (letter!='5'){ + result += letter; + } + } + return result; } + public static char caseChar(char chr){ + if (Character.isLowerCase(chr)){ + return String.valueOf(chr).toUpperCase().charAt(0); + } else { + return String.valueOf(chr).toLowerCase().charAt(0); + } + + } public static String invertCasing(String str) { - return null; + char[] letters = str.toCharArray(); + String result = ""; + for(char letter : letters){ + result += caseChar(letter); + } + 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..47c0492 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,17 @@ /** * @author leon on 30/12/2018. */ -public class Account extends BankAccount { +public class Account { + Long id; + double balance; + + + 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..d353081 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); + } -} +} \ No newline at end of file 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..a167599 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,39 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount extends Account implements Transactable{ + + public BankAccount(){ + this.balance = 0; + + } + public void setBalance(Double val) { + this.balance = val; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if (amountToIncreaseBy < 0){ + throw new IllegalArgumentException(); + } + this.balance += amountToIncreaseBy; + + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if (amountToDecreaseBy < 0) { + throw new IllegalArgumentException(); + } else if(getBalance() < amountToDecreaseBy){ + throw new IllegalArgumentException(); + } + + this.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..b6fa31c 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,101 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker, Transactable { + BankAccount workAccount; + Double hoursWorked; + Double hourly; + Double earned; + public Employee() { + this.workAccount = new BankAccount(); + this.hoursWorked = 0.0; + this.hourly = 35.0; + this.earned = 0.0; } public Employee(BankAccount bankAccount) { + this.workAccount = bankAccount; + this.hoursWorked = 0.0; + this.hourly = 35.0; + this.earned = 0.0; } public BankAccount getBankAccount() { - return null; + return workAccount; } public void setBankAccount(BankAccount bankAccount) { + this.workAccount = bankAccount; + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + this.hoursWorked += numberOfHours; + } + + @Override + public Double getHoursWorked() { + return this.hoursWorked; + } + + @Override + public Double getHourlyWage() { + return this.hourly; + } + + @Override + public Double getMoneyEarned() { + return this.earned; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if (amountToIncreaseBy < 0) { + throw new IllegalArgumentException(); + } else { + this.workAccount.setBalance(workAccount.getBalance() + amountToIncreaseBy); + } + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if (amountToDecreaseBy < 0){ + throw new IllegalArgumentException(); + } + this.workAccount.setBalance(workAccount.getBalance()-amountToDecreaseBy); + } + + @Override + public Double getBalance() { + return this.workAccount.getBalance(); + } + + public BankAccount getWorkAccount() { + return workAccount; + } + + public void setWorkAccount(BankAccount workAccount) { + this.workAccount = workAccount; + } + + public void setHoursWorked(Double hoursWorked) { + this.hoursWorked = hoursWorked; + } + + public Double getHourly() { + return hourly; + } + + public void setHourly(Double hourly) { + this.hourly = hourly; + } + + public Double getEarned() { + return earned; + } + public void setEarned(Double earned) { + this.earned = earned; } }