From 6b1b7fb066ba08cb53c1bb1c013518b84f1c526e Mon Sep 17 00:00:00 2001 From: ilearnprogramms Date: Thu, 7 May 2026 21:19:17 +0200 Subject: [PATCH] Final --- README.md | 11 +++++ src/main/Java/BigDecimalMain.java | 38 +++++++++++++++ src/main/Java/IntArrayList.java | 39 +++++++++++++++ src/main/Java/IntList.java | 8 ++++ src/main/Java/IntVector.java | 35 ++++++++++++++ src/main/Java/Vehicles/Car.java | 55 ++++++++++++++++++++++ src/main/Java/Vehicles/Sedan.java | 8 ++++ src/main/Java/Vehicles/Truck.java | 19 ++++++++ src/main/Java/Vehicles/UtilityVehicle.java | 19 ++++++++ src/main/Java/Vehicles/VehicleMain.java | 29 ++++++++++++ src/main/Java/Video/Movie.java | 17 +++++++ src/main/Java/Video/TvSeries.java | 17 +++++++ src/main/Java/Video/Video.java | 17 +++++++ src/main/Java/Video/VideoMain.java | 22 +++++++++ 14 files changed, 334 insertions(+) create mode 100644 src/main/Java/BigDecimalMain.java create mode 100644 src/main/Java/IntArrayList.java create mode 100644 src/main/Java/IntList.java create mode 100644 src/main/Java/IntVector.java create mode 100644 src/main/Java/Vehicles/Car.java create mode 100644 src/main/Java/Vehicles/Sedan.java create mode 100644 src/main/Java/Vehicles/Truck.java create mode 100644 src/main/Java/Vehicles/UtilityVehicle.java create mode 100644 src/main/Java/Vehicles/VehicleMain.java create mode 100644 src/main/Java/Video/Movie.java create mode 100644 src/main/Java/Video/TvSeries.java create mode 100644 src/main/Java/Video/Video.java create mode 100644 src/main/Java/Video/VideoMain.java diff --git a/README.md b/README.md index ce069b6..3dc5b7f 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,17 @@ 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. +## Efficiency Examples + +### IntArrayList +IntArrayList is more memory efficient because it only increases +its size by 50%. This is useful when memory usage should stay smaller. + +### IntVector +IntVector is more efficient when many elements are added frequently, +because doubling the array size reduces the number of times resizing +must happen. +
## FAQs diff --git a/src/main/Java/BigDecimalMain.java b/src/main/Java/BigDecimalMain.java new file mode 100644 index 0000000..7b24162 --- /dev/null +++ b/src/main/Java/BigDecimalMain.java @@ -0,0 +1,38 @@ +package Java; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class BigDecimalMain { + + + public static double roundToHundredth(BigDecimal number) { + BigDecimal rounded = number.setScale(2, RoundingMode.HALF_UP); + return rounded.doubleValue(); + } + + + public static BigDecimal reverseSignAndRound(BigDecimal number) { + BigDecimal reversed = number.negate(); + return reversed.setScale(1, RoundingMode.HALF_UP); + } + + public static void main(String[] args) { + + BigDecimal num1 = new BigDecimal("4.2545"); + System.out.println(roundToHundredth(num1)); + + + BigDecimal num2 = new BigDecimal("1.2345"); + System.out.println(reverseSignAndRound(num2)); + + + BigDecimal num3 = new BigDecimal("-45.67"); + System.out.println(reverseSignAndRound(num3)); + + } + + +} + + diff --git a/src/main/Java/IntArrayList.java b/src/main/Java/IntArrayList.java new file mode 100644 index 0000000..4bd33f6 --- /dev/null +++ b/src/main/Java/IntArrayList.java @@ -0,0 +1,39 @@ +package Java; + +public class IntArrayList implements IntList { + + private int[] numbers; + private int size; + + public IntArrayList() { + numbers = new int[10]; + size = 0; + } + + @Override + public void add(int number) { + + // Check if array is full + if (size == numbers.length) { + + int newLength = numbers.length + (numbers.length / 2); + + int[] newArray = new int[newLength]; + + // Copy elements + for (int i = 0; i < numbers.length; i++) { + newArray[i] = numbers[i]; + } + + numbers = newArray; + } + + numbers[size] = number; + size++; + } + + @Override + public int get(int id) { + return numbers[id]; + } +} diff --git a/src/main/Java/IntList.java b/src/main/Java/IntList.java new file mode 100644 index 0000000..dc73441 --- /dev/null +++ b/src/main/Java/IntList.java @@ -0,0 +1,8 @@ +package Java; + +public interface IntList { + + void add(int number); + + int get(int id); +} diff --git a/src/main/Java/IntVector.java b/src/main/Java/IntVector.java new file mode 100644 index 0000000..5fdb645 --- /dev/null +++ b/src/main/Java/IntVector.java @@ -0,0 +1,35 @@ +package Java; + +public class IntVector implements IntList { + + private int[] numbers; + private int size; + + public IntVector() { + numbers = new int[20]; + size = 0; + } + + @Override + public void add(int number) { + + if (size == numbers.length) { + + int[] newArray = new int[numbers.length * 2]; + + for (int i = 0; i < numbers.length; i++) { + newArray[i] = numbers[i]; + } + + numbers = newArray; + } + + numbers[size] = number; + size++; + } + + @Override + public int get(int id) { + return numbers[id]; + } +} diff --git a/src/main/Java/Vehicles/Car.java b/src/main/Java/Vehicles/Car.java new file mode 100644 index 0000000..28467ba --- /dev/null +++ b/src/main/Java/Vehicles/Car.java @@ -0,0 +1,55 @@ +package Java.Vehicles; + +public abstract class Car { + + protected String vinNumber; + protected String make; + protected String model; + protected 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 getVinNumber() { + return vinNumber; + } + + public void setVinNumber(String vinNumber) { + this.vinNumber = vinNumber; + } + + public String getMake() { + return make; + } + + public void setMake(String make) { + this.make = make; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public int getMileage() { + return mileage; + } + + public void setMileage(int mileage) { + this.mileage = mileage; + } + + public String getInfo() { + return "VIN: " + vinNumber + + ", Make: " + make + + ", Model: " + model + + ", Mileage: " + mileage; + } +} diff --git a/src/main/Java/Vehicles/Sedan.java b/src/main/Java/Vehicles/Sedan.java new file mode 100644 index 0000000..a709160 --- /dev/null +++ b/src/main/Java/Vehicles/Sedan.java @@ -0,0 +1,8 @@ +package Java.Vehicles; + +public class Sedan extends Car { + + public Sedan(String vinNumber, String make, String model, int mileage) { + super(vinNumber, make, model, mileage); + } +} diff --git a/src/main/Java/Vehicles/Truck.java b/src/main/Java/Vehicles/Truck.java new file mode 100644 index 0000000..cc8a553 --- /dev/null +++ b/src/main/Java/Vehicles/Truck.java @@ -0,0 +1,19 @@ +package Java.Vehicles; + +public class Truck extends Car { + + private final 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; + } +} diff --git a/src/main/Java/Vehicles/UtilityVehicle.java b/src/main/Java/Vehicles/UtilityVehicle.java new file mode 100644 index 0000000..00f105c --- /dev/null +++ b/src/main/Java/Vehicles/UtilityVehicle.java @@ -0,0 +1,19 @@ +package Java.Vehicles; + +public class UtilityVehicle extends Car { + + private final 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/main/Java/Vehicles/VehicleMain.java b/src/main/Java/Vehicles/VehicleMain.java new file mode 100644 index 0000000..4b865e2 --- /dev/null +++ b/src/main/Java/Vehicles/VehicleMain.java @@ -0,0 +1,29 @@ +package Java.Vehicles; + +public class VehicleMain { + + public static void main(String[] args) { + + Sedan sedan = new Sedan("VIN012", "Toyota", "Camry", 50000); + + UtilityVehicle suv = new UtilityVehicle( + "VIN123", + "Jeep", + "Wrangler", + 30000, + true + ); + + Truck truck = new Truck( + "VIN234", + "Ford", + "F-150", + 40000, + 12000.5 + ); + + System.out.println(sedan.getInfo()); + System.out.println(suv.getInfo()); + System.out.println(truck.getInfo()); + } +} diff --git a/src/main/Java/Video/Movie.java b/src/main/Java/Video/Movie.java new file mode 100644 index 0000000..0843cef --- /dev/null +++ b/src/main/Java/Video/Movie.java @@ -0,0 +1,17 @@ +package Java.Video; + +public 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; + } +} diff --git a/src/main/Java/Video/TvSeries.java b/src/main/Java/Video/TvSeries.java new file mode 100644 index 0000000..c4eb7a6 --- /dev/null +++ b/src/main/Java/Video/TvSeries.java @@ -0,0 +1,17 @@ +package Java.Video; + +public 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; + } +} diff --git a/src/main/Java/Video/Video.java b/src/main/Java/Video/Video.java new file mode 100644 index 0000000..1137512 --- /dev/null +++ b/src/main/Java/Video/Video.java @@ -0,0 +1,17 @@ +package Java.Video; + +public abstract class Video { + + protected String title; + protected int duration; + + public Video(String title, int duration) { + this.title = title; + this.duration = duration; + } + + public String getInfo() { + return "Title: " + title + + ", Duration: " + duration + " minutes"; + } +} diff --git a/src/main/Java/Video/VideoMain.java b/src/main/Java/Video/VideoMain.java new file mode 100644 index 0000000..4f14d4e --- /dev/null +++ b/src/main/Java/Video/VideoMain.java @@ -0,0 +1,22 @@ +package Java.Video; + +public class VideoMain { + + public static void main(String[] args) { + + TvSeries series = new TvSeries( + "Breaking Bad", + 3000, + 62 + ); + + Movie movie = new Movie( + "Inception", + 148, + 8.8 + ); + + System.out.println(series.getInfo()); + System.out.println(movie.getInfo()); + } +}