diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..ab1f416
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/lab-java-interfaces-and-abstract-classes.iml b/.idea/lab-java-interfaces-and-abstract-classes.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/lab-java-interfaces-and-abstract-classes.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..188022c
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..ff55171
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index ce069b6..39a1cc7 100644
--- a/README.md
+++ b/README.md
@@ -68,8 +68,16 @@ Once you finish the assignment, submit a URL link to your repository or your pul
4. `IntVector` should store numbers in an array with a length of 20 by default. When the `add` method is called, you must first determine if the array is full. If it is, create a new array that is double the size of the current array, move all elements over to the new array and add the new element. (For example, an array of length 10 would be increased to 20.)
5. In your `README.md`, include an example of when `IntArrayList` would be more efficient and when `IntVector` would be more efficient.
+IntArrayList
+
+- Aplicaciones con memoria limitada
+- Conjuntos de datos pequeños o medianos
+IntVector
+
+- Aplicaciones con grandes volúmenes de datos
+- Sistemas donde la velocidad es más importante que la memoria
## FAQs
diff --git a/src/BigDecimalOperations.java b/src/BigDecimalOperations.java
new file mode 100644
index 0000000..a94ce49
--- /dev/null
+++ b/src/BigDecimalOperations.java
@@ -0,0 +1,30 @@
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+ public class BigDecimalOperations {
+
+ // Ex 1
+ public static double roundToHundredth(BigDecimal number) {
+ BigDecimal rounded = number.setScale(2, RoundingMode.HALF_UP);
+ return rounded.doubleValue();
+ }
+
+ // Ex 2
+ public static double invertAndRoundToTenth(BigDecimal number) {
+ BigDecimal inverted = number.negate();
+ BigDecimal rounded = inverted.setScale(1, RoundingMode.HALF_UP);
+ return rounded.doubleValue();
+ }
+
+ public static void main(String[] args) {
+
+ BigDecimal num1 = new BigDecimal("4.2545");
+ System.out.println("Rounded to hundredth: " + roundToHundredth(num1));
+
+ BigDecimal num2 = new BigDecimal("1.2345");
+ System.out.println("Invert and round: " + invertAndRoundToTenth(num2));
+
+ BigDecimal num3 = new BigDecimal("-45.67");
+ System.out.println("Invert and round: " + invertAndRoundToTenth(num3));
+ }
+ }
diff --git a/src/CarInventorySystem/Car.java b/src/CarInventorySystem/Car.java
new file mode 100644
index 0000000..53103fb
--- /dev/null
+++ b/src/CarInventorySystem/Car.java
@@ -0,0 +1,20 @@
+package CarInventorySystem;
+
+abstract class Car {
+
+ private String vinNumber;
+ private String make;
+ private String model;
+ private int mileage;
+
+ public Car(String vinNumber, String make, String model, int mileage) {
+ this.vinNumber = vinNumber;
+ this.make = make;
+ this.model = model;
+ this.mileage = mileage;
+ }
+
+ public String getInfo() {
+ return "VIN: " + vinNumber + "/ Make: " + make + "/ Model: " + model + "/ Mileage: " + mileage;
+ }
+ }
diff --git a/src/CarInventorySystem/Main.java b/src/CarInventorySystem/Main.java
new file mode 100644
index 0000000..0ed4c46
--- /dev/null
+++ b/src/CarInventorySystem/Main.java
@@ -0,0 +1,16 @@
+package CarInventorySystem;
+
+public class Main {
+ public static void main(String[] args) {
+
+ Sedan sedan = new Sedan("8902MLH", "Kia", "Xceed", 50000);
+
+ UtilityVehicle suv = new UtilityVehicle("8793MYT", "Jeep", "Wrangler", 30000, true);
+
+ Truck truck = new Truck("8795LFM", "Volvo", "FH", 70000, 5000.5);
+
+ System.out.println(sedan.getInfo());
+ System.out.println(suv.getInfo());
+ System.out.println(truck.getInfo());
+ }
+}
diff --git a/src/CarInventorySystem/Sedan.java b/src/CarInventorySystem/Sedan.java
new file mode 100644
index 0000000..650b09d
--- /dev/null
+++ b/src/CarInventorySystem/Sedan.java
@@ -0,0 +1,8 @@
+package CarInventorySystem;
+
+class Sedan extends Car {
+
+ public Sedan(String vinNumber, String make, String model, int mileage) {
+ super(vinNumber, make, model, mileage);
+ }
+}
\ No newline at end of file
diff --git a/src/CarInventorySystem/Truck.java b/src/CarInventorySystem/Truck.java
new file mode 100644
index 0000000..d48e561
--- /dev/null
+++ b/src/CarInventorySystem/Truck.java
@@ -0,0 +1,16 @@
+package CarInventorySystem;
+
+class Truck extends Car {
+
+ private double towingCapacity;
+
+ public Truck(String vinNumber, String make, String model, int mileage, double towingCapacity) {
+ super(vinNumber, make, model, mileage);
+ this.towingCapacity = towingCapacity;
+ }
+
+ @Override
+ public String getInfo() {
+ return super.getInfo() + ", Towing Capacity: " + towingCapacity;
+ }
+}
\ No newline at end of file
diff --git a/src/CarInventorySystem/UtilityVehicle.java b/src/CarInventorySystem/UtilityVehicle.java
new file mode 100644
index 0000000..cda34bd
--- /dev/null
+++ b/src/CarInventorySystem/UtilityVehicle.java
@@ -0,0 +1,16 @@
+package CarInventorySystem;
+
+class UtilityVehicle extends Car {
+
+ private boolean fourWheelDrive;
+
+ public UtilityVehicle(String vinNumber, String make, String model, int mileage, boolean fourWheelDrive) {
+ super(vinNumber, make, model, mileage);
+ this.fourWheelDrive = fourWheelDrive;
+ }
+
+ @Override
+ public String getInfo() {
+ return super.getInfo() + ", Four Wheel Drive: " + fourWheelDrive;
+ }
+}
\ No newline at end of file
diff --git a/src/IntListInterface/IntArrayList.java b/src/IntListInterface/IntArrayList.java
new file mode 100644
index 0000000..1286b44
--- /dev/null
+++ b/src/IntListInterface/IntArrayList.java
@@ -0,0 +1,38 @@
+package IntListInterface;
+
+public class IntArrayList implements IntList {
+
+ private int[] data;
+ private int size;
+
+ public IntArrayList() {
+ data = new int[10];
+ size = 0;
+ }
+
+ @Override
+ public void add(int number) {
+
+ if (size == data.length) {
+ int newLength = (int) (data.length * 1.5);
+ int[] newData = new int[newLength];
+
+ for (int i = 0; i < data.length; i++) {
+ newData[i] = data[i];
+ }
+
+ data = newData;
+ }
+
+ data[size] = number;
+ size++;
+ }
+
+ @Override
+ public int get(int id) {
+ if (id < 0 || id >= size) {
+ throw new IndexOutOfBoundsException("Invalid index");
+ }
+ return data[id];
+ }
+}
\ No newline at end of file
diff --git a/src/IntListInterface/IntList.java b/src/IntListInterface/IntList.java
new file mode 100644
index 0000000..a07ca05
--- /dev/null
+++ b/src/IntListInterface/IntList.java
@@ -0,0 +1,8 @@
+package IntListInterface;
+
+public interface IntList {
+
+ void add(int number);
+
+ int get(int id);
+}
\ No newline at end of file
diff --git a/src/IntListInterface/IntVector.java b/src/IntListInterface/IntVector.java
new file mode 100644
index 0000000..be99845
--- /dev/null
+++ b/src/IntListInterface/IntVector.java
@@ -0,0 +1,38 @@
+package IntListInterface;
+
+public class IntVector implements IntList {
+
+ private int[] data;
+ private int size;
+
+ public IntVector() {
+ data = new int[20];
+ size = 0;
+ }
+
+ @Override
+ public void add(int number) {
+
+ if (size == data.length) {
+ int newLength = data.length * 2;
+ int[] newData = new int[newLength];
+
+ for (int i = 0; i < data.length; i++) {
+ newData[i] = data[i];
+ }
+
+ data = newData;
+ }
+
+ data[size] = number;
+ size++;
+ }
+
+ @Override
+ public int get(int id) {
+ if (id < 0 || id >= size) {
+ throw new IndexOutOfBoundsException("Invalid index");
+ }
+ return data[id];
+ }
+}
\ No newline at end of file
diff --git a/src/IntListInterface/Main.java b/src/IntListInterface/Main.java
new file mode 100644
index 0000000..930c633
--- /dev/null
+++ b/src/IntListInterface/Main.java
@@ -0,0 +1,18 @@
+package IntListInterface;
+
+public class Main {
+
+ public static void main(String[] args) {
+
+ IntList list1 = new IntArrayList();
+ IntList list2 = new IntVector();
+
+ for (int i = 0; i < 15; i++) {
+ list1.add(i);
+ list2.add(i);
+ }
+
+ System.out.println(list1.get(5));
+ System.out.println(list2.get(5));
+ }
+}
\ No newline at end of file
diff --git a/src/VideoStreamingService/Main.java b/src/VideoStreamingService/Main.java
new file mode 100644
index 0000000..6514848
--- /dev/null
+++ b/src/VideoStreamingService/Main.java
@@ -0,0 +1,12 @@
+package VideoStreamingService;
+
+public class Main {
+ public static void main(String[] args) {
+
+ TvSeries series = new TvSeries("Vikings", 50, 89);
+ Movie movie = new Movie("TLOTR: The Return of the King", 201, 8.2);
+
+ System.out.println(series.getInfo());
+ System.out.println(movie.getInfo());
+ }
+}
\ No newline at end of file
diff --git a/src/VideoStreamingService/Movie.java b/src/VideoStreamingService/Movie.java
new file mode 100644
index 0000000..df72e5b
--- /dev/null
+++ b/src/VideoStreamingService/Movie.java
@@ -0,0 +1,16 @@
+package VideoStreamingService;
+
+class Movie extends Video {
+
+ private double rating;
+
+ public Movie(String title, int duration, double rating) {
+ super(title, duration);
+ this.rating = rating;
+ }
+
+ @Override
+ public String getInfo() {
+ return super.getInfo() + ", Rating: " + rating;
+ }
+}
\ No newline at end of file
diff --git a/src/VideoStreamingService/TvSeries.java b/src/VideoStreamingService/TvSeries.java
new file mode 100644
index 0000000..1df5f8f
--- /dev/null
+++ b/src/VideoStreamingService/TvSeries.java
@@ -0,0 +1,16 @@
+package VideoStreamingService;
+
+class TvSeries extends Video {
+
+ private int episodes;
+
+ public TvSeries(String title, int duration, int episodes) {
+ super(title, duration);
+ this.episodes = episodes;
+ }
+
+ @Override
+ public String getInfo() {
+ return super.getInfo() + ", Episodes: " + episodes;
+ }
+}
\ No newline at end of file
diff --git a/src/VideoStreamingService/Video.java b/src/VideoStreamingService/Video.java
new file mode 100644
index 0000000..dcaa1c9
--- /dev/null
+++ b/src/VideoStreamingService/Video.java
@@ -0,0 +1,15 @@
+package VideoStreamingService;
+
+abstract class Video {
+ private String title;
+ private int duration;
+
+ public Video(String title, int duration) {
+ this.title = title;
+ this.duration = duration;
+ }
+
+ public String getInfo() {
+ return "Title: " + title + ", Duration: " + duration + " minutes";
+ }
+}