From e5ce0cbc8f753688e419f13cfbe8c1c87ef286eb Mon Sep 17 00:00:00 2001 From: vle Date: Fri, 20 Mar 2020 17:14:09 -0400 Subject: [PATCH 1/5] get all spices done --- .../java/rocks/zipcode/quiz4/arrays/ArrayUtils.java | 12 +++++++++--- .../zipcode/quiz4/collections/culonary/Curry.java | 2 +- .../zipcode/quiz4/collections/culonary/Food.java | 10 +++++++++- .../zipcode/quiz4/collections/culonary/Ginger.java | 2 +- .../zipcode/quiz4/collections/culonary/Pepper.java | 2 +- 5 files changed, 21 insertions(+), 7 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..2fd6ca0 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,19 +1,25 @@ package rocks.zipcode.quiz4.arrays; +import java.util.Arrays; +import java.util.stream.Collectors; +import java.util.stream.Stream; + /** * @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; + return Stream.of(values) + .filter(x -> !x.equals(getMiddleElement(values))) + .toArray(String[]::new); } public static String getLastElement(String[] values) { - return null; + return values[values.length-1]; } public static String[] removeLastElement(String[] values) { 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..96ce563 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..c46a3da 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,6 @@ package rocks.zipcode.quiz4.collections.culonary; +import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -7,8 +8,14 @@ * @author leon on 27/12/2018. */ public class Food { + List spices; + + public Food(){ + spices = new LinkedList<>(); + } + public List getAllSpices() { - return null; + return spices; } public > Map getSpiceCount() { @@ -16,5 +23,6 @@ public > Map getSpi } 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..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{ } From dc84bf7e4f16bcc443cdc1ab3cac549059dafdca Mon Sep 17 00:00:00 2001 From: vle Date: Fri, 20 Mar 2020 18:03:46 -0400 Subject: [PATCH 2/5] word count done --- .../zipcode/quiz4/collections/WordCounter.java | 8 +++++++- .../zipcode/quiz4/collections/culonary/Food.java | 16 +++++++++++----- 2 files changed, 18 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..3b55b58 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -1,12 +1,18 @@ package rocks.zipcode.quiz4.collections; +import java.util.LinkedHashMap; import java.util.Map; +import java.util.stream.Stream; public class WordCounter { + Stream strigs; public WordCounter(String... strings) { + strigs = Stream.of(strings); } public Map getWordCountMap() { - return null; + Map retMap = new LinkedHashMap<>(); + strigs.forEach(x -> retMap.compute((String) x, (k, v) -> (v == null) ? 1 : v + 1)); + return retMap; } } 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 c46a3da..823b18b 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java @@ -1,8 +1,7 @@ package rocks.zipcode.quiz4.collections.culonary; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Stream; /** * @author leon on 27/12/2018. @@ -10,7 +9,7 @@ public class Food { List spices; - public Food(){ + public Food() { spices = new LinkedList<>(); } @@ -19,7 +18,14 @@ public List getAllSpices() { } public > Map getSpiceCount() { - return null; + Map retMap = new LinkedHashMap<>(); + Stream.of(spices) + .flatMap(Collection::stream) + .forEach(x -> { + retMap.compute((SpiceType)x.getClass(), (k,v) -> (v == null) ? 1 : v + 1); + }); + + return retMap; } public void applySpice(Spice spice) { From 400e219be9e554f2076eeee3adb82181321cb4a3 Mon Sep 17 00:00:00 2001 From: vle Date: Sun, 22 Mar 2020 14:48:08 -0400 Subject: [PATCH 3/5] bank account test done --- .../zipcode/quiz4/arrays/ArrayUtils.java | 13 +++- .../quiz4/fundamentals/Calculator.java | 21 ++++-- .../quiz4/fundamentals/StringUtils.java | 67 +++++++++++++++++-- .../objectorientation/account/Account.java | 14 +++- .../account/BankAccount.java | 25 ++++++- 5 files changed, 122 insertions(+), 18 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 2fd6ca0..b830515 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,6 +1,10 @@ package rocks.zipcode.quiz4.arrays; import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collector; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -23,6 +27,13 @@ public static String getLastElement(String[] values) { } public static String[] removeLastElement(String[] values) { - return null; + AtomicInteger i = new AtomicInteger(0); + List temp = new LinkedList<>(); + Arrays.stream(values) + .forEach(x -> { + if(i.getAndIncrement() != values.length-1) + temp.add(x); + }); + return temp.stream().toArray(String[]::new); } } \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java index 02f2618..a7f40ed 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -1,35 +1,42 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.DoubleStream; +import java.util.stream.Stream; + /** * @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(Calculator::squareRoot).toArray(Double[]::new); } public static Double[] squares(Double... values) { - return null; + return Arrays.stream(values).map(Calculator::square).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..eb300a0 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -1,34 +1,87 @@ package rocks.zipcode.quiz4.fundamentals; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collector; +import java.util.stream.Collectors; +import java.util.stream.Stream; + /** * @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; + StringBuilder retString = new StringBuilder(); + AtomicInteger i = new AtomicInteger(0); + str.chars().mapToObj(x -> (char)x).forEach(x -> { + if((str.length()/2) == i.getAndIncrement()) + retString.append(x.toString().toUpperCase()); + else + retString.append(x); + }); + return retString.toString(); } public static String lowerCaseMiddleCharacter(String str) { - return null; +// return str.substring(0,str.length()/2) + getMiddleCharacter(str.toLowerCase()) + str.substring(str.length()/2 +1); + StringBuilder retString = new StringBuilder(); + AtomicInteger i = new AtomicInteger(0); + str.chars().mapToObj(x -> (char)x).forEach(x -> { + if((str.length()/2) == i.getAndIncrement()) + retString.append(x.toString().toLowerCase()); + else + retString.append(x); + }); + return retString.toString(); } public static Boolean isIsogram(String str) { - return null; + StringBuilder sorted = new StringBuilder(); + str.chars().mapToObj(x -> (char)x).sorted().forEach(x -> sorted.append(x)); + for(int i = 1; i < sorted.length(); i++){ + if(sorted.charAt(i-1) == sorted.charAt(i)) + return false; + } + return true; } public static Boolean hasDuplicateConsecutiveCharacters(String str) { - return null; + StringBuilder retStr = new StringBuilder(); + str.chars().mapToObj(x -> (char)x).forEach(x -> retStr.append(x)); + for(int i = 1; i < retStr.length(); i++){ + if(retStr.charAt(i-1) == retStr.charAt(i)) + return true; + } + return false; } public static String removeConsecutiveDuplicateCharacters(String str) { - return null; + StringBuilder retStr = new StringBuilder(); + for(int i = 0; i < str.length()-1; i++){ + if(str.charAt(i) != str.charAt(i+1)) + retStr.append(str.charAt(i)); + else { + i++; + } + } + retStr.append(str.charAt(str.length()-1)); + return retStr.toString(); } public static String invertCasing(String str) { - return null; + StringBuilder retStr = new StringBuilder(); + str.chars().mapToObj(x -> (char)x) + .forEach(x -> { + String cha = x.toString(); + if(cha.equals(cha.toUpperCase())) + retStr.append(cha.toLowerCase()); + else + retStr.append(cha.toUpperCase()); + }); + return retStr.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..82b1a4f 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,21 @@ /** * @author leon on 30/12/2018. */ -public class Account extends BankAccount { +public class Account{ + + protected Long id; + protected Double balance; + + public Account(){ + id = 0l; + balance = 0.0; + } + 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/BankAccount.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java index 70ccb74..4748973 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{ + public void setBalance(Double val) { + balance = val; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if(amountToIncreaseBy >= 0) + setBalance(balance + amountToIncreaseBy); + else + throw new IllegalArgumentException(); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if(amountToDecreaseBy <= balance && amountToDecreaseBy >= 0) + setBalance(balance - amountToDecreaseBy); + else + throw new IllegalArgumentException(); + } + + @Override + public Double getBalance() { + return balance; } } From 45e8f30bc982fbd65e700d7e2bb5095791d1d001 Mon Sep 17 00:00:00 2001 From: vle Date: Sun, 22 Mar 2020 15:03:06 -0400 Subject: [PATCH 4/5] done --- .../quiz4/objectorientation/account/Bank.java | 14 +++++- .../objectorientation/account/Employee.java | 49 ++++++++++++++++++- 2 files changed, 59 insertions(+), 4 deletions(-) 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..2476d09 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,27 @@ package rocks.zipcode.quiz4.objectorientation.account; +import java.util.LinkedList; +import java.util.List; + /** * @author leon on 27/12/2018. */ public class Bank { + List bank; + + public Bank(){ + bank = new LinkedList<>(); + } + public BankAccount removeBankAccountByIndex(Integer indexNumber) { - return null; + return bank.remove((int)indexNumber); } public void addBankAccount(BankAccount bankAccount) { + bank.add(bankAccount); } public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + return bank.contains(bankAccount); } } 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..95d8373 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,63 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker,Transactable{ + + BankAccount bankAccount; + Double hourlyWage; + Double hoursWorked; + public Employee() { + bankAccount = new BankAccount(); + hourlyWage = 35.0; + hoursWorked = 0.0; } public Employee(BankAccount bankAccount) { + this(); + 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.deposit(amountToIncreaseBy); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + bankAccount.withdrawal(amountToDecreaseBy); + } + @Override + public Double getBalance() { + return bankAccount.getBalance(); } } From d2aff2ca11ec3da14a15619fc7bfcae3e38cf576 Mon Sep 17 00:00:00 2001 From: vle Date: Tue, 7 Apr 2020 05:24:13 -0400 Subject: [PATCH 5/5] refactored/update gitignore --- src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java | 2 +- src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index b830515..f7ee000 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -34,6 +34,6 @@ public static String[] removeLastElement(String[] values) { if(i.getAndIncrement() != values.length-1) temp.add(x); }); - return temp.stream().toArray(String[]::new); + return temp.toArray(new String[0]); } } \ No newline at end of file diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index eb300a0..2666e27 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -27,7 +27,6 @@ public static String capitalizeMiddleCharacter(String str) { } public static String lowerCaseMiddleCharacter(String str) { -// return str.substring(0,str.length()/2) + getMiddleCharacter(str.toLowerCase()) + str.substring(str.length()/2 +1); StringBuilder retString = new StringBuilder(); AtomicInteger i = new AtomicInteger(0); str.chars().mapToObj(x -> (char)x).forEach(x -> {