diff --git a/src/main/java/com/dtcc/exams/arrays/IntegerArrayUtils.java b/src/main/java/com/dtcc/exams/arrays/IntegerArrayUtils.java index 981c2dc..a69075d 100644 --- a/src/main/java/com/dtcc/exams/arrays/IntegerArrayUtils.java +++ b/src/main/java/com/dtcc/exams/arrays/IntegerArrayUtils.java @@ -1,13 +1,21 @@ package com.dtcc.exams.arrays; public class IntegerArrayUtils { + + /** * @param integerArray - array to have value added to it * @param valueToBeAdded - value to be added to the end of the array * @return - identical array with one additional element of `valueToBeAdded` at the end of the array */ public static Integer[] add(Integer[] integerArray, Integer valueToBeAdded) { - return null; + Integer[] newArray = new Integer[integerArray.length + 1]; + for (int i = 0; i < integerArray.length; i++){ + newArray[i] = integerArray[i]; + } + newArray[newArray.length-1] = valueToBeAdded; + + return newArray; } /** @@ -17,7 +25,8 @@ public static Integer[] add(Integer[] integerArray, Integer valueToBeAdded) { * @return `integerArray` with `valueToBeInserted` at index number `indexToInsertAt` */ public static Integer[] replace(Integer[] integerArray, int indexToInsertAt, Integer valueToBeInserted) { - return null; + integerArray[indexToInsertAt] = valueToBeInserted; + return integerArray; } /** @@ -26,7 +35,8 @@ public static Integer[] replace(Integer[] integerArray, int indexToInsertAt, Int * @return element located at `indexToFetch` */ public static Integer get(Integer[] integerArray, Integer indexToFetch) { - return null; + Integer value = integerArray[indexToFetch]; + return value; } /** @@ -34,7 +44,15 @@ public static Integer get(Integer[] integerArray, Integer indexToFetch) { * @return identical array with even-values incremented by 1 and odd-values decremented by 1 */ public static Integer[] incrementEvenDecrementOdd(Integer[] integerArray) { - return null; + for (int i = 0; i < integerArray.length; i++){ + if (integerArray[i] % 2 == 0){ + integerArray[i]+=1; + } + else{ + integerArray[i]-=1; + } + } + return integerArray; } /** @@ -42,7 +60,12 @@ public static Integer[] incrementEvenDecrementOdd(Integer[] integerArray) { * @return identical array with even-values incremented by 1 */ public static Integer[] incrementEven(Integer[] integerArray) { - return null; + for (int i = 0; i < integerArray.length; i++){ + if (integerArray[i] % 2 == 0){ + integerArray[i]+=1; + } + } + return integerArray; } /** @@ -50,6 +73,11 @@ public static Integer[] incrementEven(Integer[] integerArray) { * @return identical array with odd-values decremented by 1 */ public static Integer[] decrementOdd(Integer[] input) { - return null; + for (int i = 0; i < input.length; i++){ + if (input[i] % 2 != 0){ + input[i]-=1; + } + } + return input; } } diff --git a/src/main/java/com/dtcc/exams/arrays/StringArrayUtils.java b/src/main/java/com/dtcc/exams/arrays/StringArrayUtils.java index 7ea3b16..f554815 100644 --- a/src/main/java/com/dtcc/exams/arrays/StringArrayUtils.java +++ b/src/main/java/com/dtcc/exams/arrays/StringArrayUtils.java @@ -8,7 +8,22 @@ public class StringArrayUtils { * @return an array with all elements between `startingIndex` and `endingIndex` */ public static String[] getSubArray(String[] arrayToBeSpliced, int startingIndex, int endingIndex) { - return null; + int index = 0; + String[] splicedArray; + if(startingIndex >= 0 && endingIndex >= 0 && startingIndex < arrayToBeSpliced.length && endingIndex < arrayToBeSpliced.length){ + splicedArray = new String[endingIndex-startingIndex]; + for (int i = startingIndex; i < endingIndex; i++) { + splicedArray[index] = arrayToBeSpliced[i]; + index++; + } + } + else if(startingIndex > arrayToBeSpliced.length && endingIndex > arrayToBeSpliced.length){ + throw new IndexOutOfBoundsException(); + } + else{ + throw new IllegalArgumentException(); + } + return splicedArray; } @@ -18,6 +33,21 @@ public static String[] getSubArray(String[] arrayToBeSpliced, int startingIndex, * @return an array all elements between after `startingIndex` */ public static String[] getEndingArray(String[] arrayToBeSpliced, int startingIndex) { - return null; + int index = 0; + String[] splicedArray; + if(startingIndex >= 0 && startingIndex < arrayToBeSpliced.length){ + splicedArray = new String[arrayToBeSpliced.length-startingIndex]; + for (int i = startingIndex; i < arrayToBeSpliced.length; i++) { + splicedArray[index] = arrayToBeSpliced[i]; + index++; + } + } + else if(startingIndex > arrayToBeSpliced.length){ + throw new IllegalArgumentException(); + } + else{ + throw new IndexOutOfBoundsException(); + } + return splicedArray; } } diff --git a/src/main/java/com/dtcc/exams/atm/Account.java b/src/main/java/com/dtcc/exams/atm/Account.java index 85a4854..1ce1fda 100644 --- a/src/main/java/com/dtcc/exams/atm/Account.java +++ b/src/main/java/com/dtcc/exams/atm/Account.java @@ -1,25 +1,41 @@ package com.dtcc.exams.atm; public class Account { + + private double balance; public Account(double v) { + this.balance = v; } public double balance() { - return 0.0; + return this.balance; } public boolean closeAccount() { - return false; + boolean canClose = false; + if(balance == 0){ + canClose = true; + } + return canClose; } public void deposit(double v) { + this.balance += v; + } public Double withdraw(double v) { - return 0.0; + if(this.balance >= v){ + this.balance = this.balance - v; + } + return this.balance; } public void transfer(Account b, double v) { + if(this.balance >= v){ + b.balance = b.balance + v; + this.balance = this.balance - v; + } } } diff --git a/src/main/java/com/dtcc/exams/collections/Inventory.java b/src/main/java/com/dtcc/exams/collections/Inventory.java index 656eaaa..4f63ec3 100644 --- a/src/main/java/com/dtcc/exams/collections/Inventory.java +++ b/src/main/java/com/dtcc/exams/collections/Inventory.java @@ -1,16 +1,27 @@ package com.dtcc.exams.collections; +import java.util.HashMap; import java.util.List; /** * Use a map to keep track of inventory in a store */ public class Inventory { + HashMap inventory= new HashMap<>(); /** * @param strings list of strings to add / remove / fetch from */ public Inventory(List strings) { - + for(int i = 0; i< strings.size(); i++){ + if(this.inventory.containsKey(strings.get(i))){ + int j = this.inventory.get(strings.get(i)) + 1; + this.inventory.put(strings.get(i), j); + } + else{ + this.inventory.put(strings.get(i), 1); + } + } + this.inventory = inventory; } /** @@ -24,14 +35,22 @@ public Inventory() { * @param item - increment the number of this item in stock by 1 */ public void addItemToInventory(String item) { - return; + if(this.inventory.containsKey(item)){ + int quantity = this.inventory.get(item); + this.inventory.put(item, quantity +1); + } + else { + this.inventory.put(item, 1); + } } /** * @param item - decrement the number of this item in stock by 1 */ public void removeItemFromInventory(String item) { - return; + if(this.inventory.containsKey(item)){ + this.inventory.put(item, this.inventory.get(item) -1); + } } /** @@ -39,6 +58,10 @@ public void removeItemFromInventory(String item) { * @return - return the number of items */ public Integer getItemQuantity(String item) { - return null; + int quantity = 0; + if(this.inventory.containsKey(item)){ + quantity = this.inventory.get(item); + } + return quantity; } } diff --git a/src/main/java/com/dtcc/exams/collections/MonthConversion.java b/src/main/java/com/dtcc/exams/collections/MonthConversion.java index f6a6dce..8d35cf5 100644 --- a/src/main/java/com/dtcc/exams/collections/MonthConversion.java +++ b/src/main/java/com/dtcc/exams/collections/MonthConversion.java @@ -1,31 +1,57 @@ package com.dtcc.exams.collections; +import java.util.HashMap; +import java.util.Set; + /** * Use a map to solve */ public class MonthConversion { + + HashMap conversionMap = new HashMap<>(); /** - * @param monthNumber - ordinal of month in the year; i.e. January = 1, February = 2 - * @param monthName - name of month + // * @param monthNumber - ordinal of month in the year; i.e. January = 1, February = 2 + // * @param monthName - name of month */ - public void add(Integer monthNumber, String monthName) { + public MonthConversion(){ + this.conversionMap = conversionMap; + } + + public void add(Integer monthNumber, String monthName) { + this.conversionMap.put(monthNumber, monthName); } + + /** * @param monthNumber - ordinal of month in the year * @return the name of the respective month */ public String getName(Integer monthNumber) { - throw new NullPointerException(); + String monthName = null; + if(this.conversionMap.containsKey(monthNumber)){ + monthName = this.conversionMap.get(monthNumber); + } +// else{ +// throw new NullPointerException(); +// } + return monthName; } /** * @param monthName - name of month * @return - the ordinal of the month in the year */ - public int getNumber(String monthName) { - return (Integer)null; + public Integer getNumber(String monthName) { + Set keys = this.conversionMap.keySet(); + Integer numberResult = null; + for(Integer number : keys){ + if(this.conversionMap.get(number).equals(monthName)){ + numberResult = number; + } + } + return numberResult; } /** @@ -33,7 +59,11 @@ public int getNumber(String monthName) { * @return true if the monthNumber is in the keySet */ public Boolean isValidNumber(Integer monthNumber) { - return null; + boolean flag = false; + if(this.conversionMap.containsKey(monthNumber)){ + flag = true; + } + return flag; } /** @@ -41,14 +71,24 @@ public Boolean isValidNumber(Integer monthNumber) { * @return true if the monthName is in the valueSet */ public Boolean isValidMonth(String monthName) { - return null; + boolean flag = false; + Set keys = this.conversionMap.keySet(); + for(Integer number : keys){ + if(this.conversionMap.get(number).equals(monthName)){ + flag = true; + } + } + return flag; } /** * @return number of entries in this mapping */ public Integer size() { - return -1; + int size = 0; + Set keys = this.conversionMap.keySet(); + size = keys.size(); + return size; } /** @@ -56,6 +96,6 @@ public Integer size() { * @param monthName - name of month */ public void update(Integer monthNumber, String monthName) { - + this.conversionMap.put(monthNumber, monthName); } } diff --git a/src/main/java/com/dtcc/exams/fundamentals/BasicStringUtils.java b/src/main/java/com/dtcc/exams/fundamentals/BasicStringUtils.java index eebed04..4f96176 100644 --- a/src/main/java/com/dtcc/exams/fundamentals/BasicStringUtils.java +++ b/src/main/java/com/dtcc/exams/fundamentals/BasicStringUtils.java @@ -7,7 +7,8 @@ public class BasicStringUtils { * @return concatenation of `string1` and `string2` */ public static String concatentate(String string1, String string2) { - return null; + string1 += string2; + return string1; } /** @@ -15,7 +16,11 @@ public static String concatentate(String string1, String string2) { * @return an identical string with characters in reverse order */ public static String reverse(String string1) { - return null; + String string2 = ""; + for(int i = string1.length()-1; i >= 0; i--){ + string2 += string1.charAt(i); + } + return string2; } /** @@ -24,7 +29,16 @@ public static String reverse(String string1) { * @return concatenation of the reverse of `string1` and reverse of `string2` */ public static String reverseThenConcatenate(String string1, String string2) { - return null; + String string3 = ""; + for(int i = string1.length()-1; i >= 0; i--){ + string3 += string1.charAt(i); + } + String string4 = ""; + for(int i = string2.length()-1; i >= 0; i--){ + string4 += string2.charAt(i); + } + String string5 = string3 + string4; + return string5; } /** @@ -33,7 +47,10 @@ public static String reverseThenConcatenate(String string1, String string2) { * @return `string` with `charactersToRemove` removed */ public static String removeCharacters(String string, String charactersToRemove) { - return null; + for(int i = 0; i < charactersToRemove.length(); i++){ + string = string.replaceAll(charactersToRemove.charAt(i)+"", ""); + } + return string; } /** @@ -42,6 +59,13 @@ public static String removeCharacters(String string, String charactersToRemove) * @return reverse of `string` with `charactersToRemove` removed */ public static String removeCharactersThenReverse(String string, String charactersToRemove) { - return null; + for(int i = 0; i < charactersToRemove.length(); i++){ + string = string.replaceAll(charactersToRemove.charAt(i)+"", ""); + } + String string2 = ""; + for(int i = string.length()-1; i >= 0; i--){ + string2 += string.charAt(i); + } + return string2; } } diff --git a/src/main/java/com/dtcc/exams/fundamentals/PredicateUtilities.java b/src/main/java/com/dtcc/exams/fundamentals/PredicateUtilities.java index d5e94c5..3c994cb 100644 --- a/src/main/java/com/dtcc/exams/fundamentals/PredicateUtilities.java +++ b/src/main/java/com/dtcc/exams/fundamentals/PredicateUtilities.java @@ -6,7 +6,11 @@ public class PredicateUtilities { * @return true if `value` is a multiple of 2 */ public static Boolean isEven(Integer value) { - return null; + boolean flag = false; + if(value % 2 == 0){ + flag = true; + } + return flag; } /** @@ -14,7 +18,11 @@ public static Boolean isEven(Integer value) { * @return true if `value` is not a multiple of 2 */ public static Boolean isOdd(Integer value) { - return null; + boolean flag = true; + if(value % 2 == 0){ + flag = false; + } + return flag; } /** @@ -22,7 +30,11 @@ public static Boolean isOdd(Integer value) { * @return true if `value` is a multiple of 3 */ public static Boolean isMultipleOf3(Integer value) { - return null; + boolean flag = false; + if(value % 3 == 0){ + flag = true; + } + return flag; } /** @@ -32,7 +44,11 @@ public static Boolean isMultipleOf3(Integer value) { * @return true if `value` is a multiple of `multiple` */ public static Boolean isMultipleOfN(Integer value, Integer multiple) { - return null; + boolean flag = false; + if(value % multiple == 0){ + flag = true; + } + return flag; } /** @@ -40,6 +56,10 @@ public static Boolean isMultipleOfN(Integer value, Integer multiple) { * @return true if `string` starts with a capital letter */ public static Boolean startsWithCapitalLetter(String string) { - return null; + boolean flag = false; + if(string.charAt(0) >= 65 && string.charAt(0) <= 90){ + flag = true; + } + return flag; } } diff --git a/src/main/java/com/dtcc/exams/fundamentals/StringUtils.java b/src/main/java/com/dtcc/exams/fundamentals/StringUtils.java index 5ef3237..4906c8b 100644 --- a/src/main/java/com/dtcc/exams/fundamentals/StringUtils.java +++ b/src/main/java/com/dtcc/exams/fundamentals/StringUtils.java @@ -8,7 +8,13 @@ public class StringUtils { * @return `stringToBePadded` flushed right by left-padding */ public static String padLeft(String stringToBePadded, int amountOfPadding) { - return null; + String string = ""; + for(int i = 0; i < amountOfPadding - stringToBePadded.length(); i++){ + string += " "; + } + string += stringToBePadded; + + return string; } /** @@ -17,7 +23,11 @@ public static String padLeft(String stringToBePadded, int amountOfPadding) { * @return `stringToBePadded` flushed right by right-padding */ public static String padRight(String stringToBePadded, int amountOfPadding) { - return null; + int length = stringToBePadded.length(); + for(int i = 0; i < amountOfPadding - length; i++){ + stringToBePadded += " "; + } + return stringToBePadded; } /** @@ -26,7 +36,11 @@ public static String padRight(String stringToBePadded, int amountOfPadding) { * @return the string repeated and concatenated `n` times */ public static String repeatString(String stringToBeRepeated, int numberOfTimeToRepeat) { - return null; + String string = ""; + for(int i = 0; i < numberOfTimeToRepeat; i++){ + string += stringToBeRepeated; + } + return string; } /** @@ -34,7 +48,20 @@ public static String repeatString(String stringToBeRepeated, int numberOfTimeToR * @return - true if string only contains alpha characters */ public static Boolean isAlphaString(String string) { - return null; + boolean flag = true; + int i = 0; + while(flag == true && i < string.length()){ + if(string.charAt(i)<65 || (string.charAt(i)>90) && (string.charAt(i)<97) || string.charAt(i)>122){ + if(string.charAt(i) == ' '){ + flag = true; + } + else{ + flag = false; + } + } + i++; + } + return flag; } /** @@ -42,7 +69,15 @@ public static Boolean isAlphaString(String string) { * @return - true if string only contains numeric characters */ public static Boolean isNumericString(String string) { - return null; + boolean flag = true; + int i = 0; + while(flag == true && i < string.length()){ + if((string.charAt(i)< 48 || string.charAt(i)> 57)){ + flag = false; + } + i++; + } + return flag; } /** @@ -50,6 +85,16 @@ public static Boolean isNumericString(String string) { * @return - true if string only contains special characters */ public static Boolean isSpecialCharacterString(String string) { - return null; + boolean flag = true; + int i = 0; + while(flag == true && i < string.length()){ + if((string.charAt(i)>='0' && string.charAt(i)<='9') || + (string.charAt(i)>='A' && string.charAt(i)<='Z') || + ( string.charAt(i) >='a' && string.charAt(i) <='z')){ + flag = false; + } + i++; + } + return flag; } } diff --git a/src/main/java/com/dtcc/exams/oop/Address.java b/src/main/java/com/dtcc/exams/oop/Address.java index ba86210..ddc4bab 100644 --- a/src/main/java/com/dtcc/exams/oop/Address.java +++ b/src/main/java/com/dtcc/exams/oop/Address.java @@ -1,7 +1,19 @@ package com.dtcc.exams.oop; public class Address { + + String addressLine1; + String addressLine2; + String city; + String state; + String zipcode; + public Address() { + this.addressLine1 = ""; + this.addressLine2 = ""; + this.city = ""; + this.state = ""; + this.zipcode = ""; } /** @@ -12,45 +24,71 @@ public Address() { * @param zipcode - zipcode of region */ public Address(String addressLine1, String addressLine2, String city, String state, String zipcode) { + this.addressLine1 = addressLine1; + this.addressLine2 = addressLine2; + this.city = city; + this.state = state; + this.zipcode = zipcode; } public String getAddressLine1() { - return null; + return this.addressLine1; } public void setAddressLine1(String addressLine1) { + this.addressLine1 = addressLine1; } public String getAddressLine2() { - return null; + return this.addressLine2; } public void setAddressLine2(String addressLine2) { + this.addressLine2 = addressLine2; } public String getCity() { - return null; + return this.city; } public void setCity(String city) { + this.city = city; } public String getState() { - return null; + return this.state; } public void setState(String state) { + this.state = state; } public String getZipcode() { - return null; + return this.zipcode; } public void setZipcode(String zipcode) { + this.zipcode = zipcode; + } + + @Override + public String toString() { + String addressString = "Address{addressLine1='" + this.addressLine1 + "', addressLine2='" + this.addressLine2 + "', city='" + this.city + "', state='" + this.state + "', zipcode='" + this.zipcode + "'}"; + return addressString; } @Override public boolean equals(Object o) { - return (Boolean)null; + Address address2 = (Address)o; + boolean flag = false; + if(this.state.equals(address2.getState()) && + this.city.equals(address2.getCity()) && + this.addressLine2.equals(address2.getAddressLine2()) && + this.addressLine1.equals(address2.getAddressLine1()) && + this.zipcode.equals(address2.getZipcode())){ + flag = true; + } + + return flag; } } diff --git a/src/main/java/com/dtcc/exams/oop/Person.java b/src/main/java/com/dtcc/exams/oop/Person.java index b8eff00..c55db1a 100644 --- a/src/main/java/com/dtcc/exams/oop/Person.java +++ b/src/main/java/com/dtcc/exams/oop/Person.java @@ -4,40 +4,61 @@ * @ATTENTION_TO_STUDENTS - Ensure that you have completed the `Address` class before attempting this class */ public class Person { + private Long id; + private String name; + private Address address; + /** * @param id - id of person * @param name - name of person * @param address - address of person */ public Person(Long id, String name, Address address) { + this.id = null; + this.name = ""; + this.address = null; + } public Person() { + this.id = id; + this.name = name; + this.address = address; } public Long getId() { - return null; + return this.id; } public void setId(Long id) { + this.id = id; } public String getName() { - return null; + return this.name; } public void setName(String name) { + this.name = name; } public Address getAddress() { - return null; + return this.address; } public void setAddress(Address address) { + this.address = address; } @Override public boolean equals(Object o) { - return (Boolean)null; + Person person2 = (Person)o; + boolean flag = false; + if(this.id == (person2.getId()) && + this.name.equals(person2.getName()) && + this.address.equals(person2.getAddress())){ + flag = true; + } + return flag; } } \ No newline at end of file diff --git a/src/main/java/com/dtcc/exams/oop/animals/Animal.java b/src/main/java/com/dtcc/exams/oop/animals/Animal.java index 2838689..4263cd4 100644 --- a/src/main/java/com/dtcc/exams/oop/animals/Animal.java +++ b/src/main/java/com/dtcc/exams/oop/animals/Animal.java @@ -2,12 +2,17 @@ import com.dtcc.exams.oop.Address; import com.dtcc.exams.oop.Person; - /** * @ATTENTION_TO_STUDENTS - Ensure that you have completed the `Person` class before attempting this class. */ public class Animal { + + private Long id; + private Person owner; + public Animal() { + this.id = null; + this.owner = owner; } /** @@ -15,23 +20,27 @@ public Animal() { * @param owner - owner of animal */ public Animal(Long id, Person owner) { + this.id = id; + this.owner = owner; } public Long getId() { - return null; + return this.id; } public void setId(Long id) { + this.id = id; } public Person getOwner() { - return null; + return this.owner; } public void setOwner(Person owner) { + this.owner = owner; } public Address getAddress() { - return null; + return this.owner.getAddress(); } } diff --git a/src/main/java/com/dtcc/exams/oop/animals/Dog.java b/src/main/java/com/dtcc/exams/oop/animals/Dog.java index 5401e48..0b917cd 100644 --- a/src/main/java/com/dtcc/exams/oop/animals/Dog.java +++ b/src/main/java/com/dtcc/exams/oop/animals/Dog.java @@ -3,8 +3,8 @@ /** * @ATTENTION_TO_STUDENTS - Ensure that you completed the `Animal` class before attempting this class */ -public class Dog { +public class Dog extends Animal{ public String speak() { - return null; + return "Woof"; } } diff --git a/src/main/java/com/dtcc/exams/oop/animals/Woofer.java b/src/main/java/com/dtcc/exams/oop/animals/Woofer.java index 6d53313..4fc8006 100644 --- a/src/main/java/com/dtcc/exams/oop/animals/Woofer.java +++ b/src/main/java/com/dtcc/exams/oop/animals/Woofer.java @@ -1,5 +1,5 @@ package com.dtcc.exams.oop.animals; -public class Woofer { +public class Woofer extends Dog{ }