Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,11 @@ Una vez que termines la tarea, envía un enlace URL a tu repositorio o tu solici
- `get (int id)`: un método que recupera un elemento por su ID
2. Crea dos implementaciones de `IntList`: `IntArrayList` y `IntVector`.
3. `IntArrayList` debe almacenar números en un array con una longitud de 10 por defecto. Cuando se llama al método `add`, primero debes determinar si el array está lleno. Si lo está, crea un nuevo array que sea el 50% más grande, mueve todos los elementos al nuevo array y agregue el nuevo elemento. (Por ejemplo, un array de longitud 10 aumentaría a 15).
IntArrayList será más eficiente cuando sabemos que la obtención de datos será de manera lenta y controlado, ya que así malgastamos menos espacio en memoria.

4. `IntVector` debe almacenar números en un arreglo con una longitud de 20 por defecto. Cuando se llama al método `add`, primero debes determinar si el array está lleno. Si lo está, crea un nuevo array que sea el doble del tamaño del array actual, mueve todos los elementos al nuevo array y agrega el nuevo elemento. (Por ejemplo, un array de longitud 10 aumentaría a 20).
IntVector será más eficiente si la cantidad de datos que tenemos es muy alta ya que nos ahorramos tiempo de ejecución añadiendo muchos datos en una sola pasada, en vez de estar repitiendolo poco a poco.

5. En su `README.md`, incluye un ejemplo de cuándo `IntArrayList` sería más eficiente y cuándo `IntVector` sería más eficiente.

<br>
Expand Down
29 changes: 29 additions & 0 deletions Week-3-Labs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/

### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### Mac OS ###
.DS_Store
8 changes: 8 additions & 0 deletions Week-3-Labs/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Week-3-Labs/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Week-3-Labs/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions Week-3-Labs/Week-3-Labs.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
30 changes: 30 additions & 0 deletions Week-3-Labs/src/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import objects.*;
import utils.Utils;

import java.math.BigDecimal;

public class Main {
public static void main(String[] args) {
IntArrayList intArrayList = new IntArrayList();
IntVector intVector = new IntVector();

intVector.add(5);
}

public static void vehicleInventory(){
Sedan sedan = new Sedan("54239869", "Toyota", "Corolla", 15000);
Truck truck = new Truck("23452656", "Iveco", "2020", 43000, 2145.2);
UtilityVehicle utilityVehicle = new UtilityVehicle("3457567", "Citroen", "C4", 10000, true);
sedan.getInfo();
truck.getInfo();
utilityVehicle.getInfo();
}
public static void videoStreaming(){
TvSeries tvSeries = new TvSeries("Sex in the city", 120, 12);
Movie movie = new Movie("Titanic", 125, 7.5);
tvSeries.getInfo();
movie.getInfo();
}


}
6 changes: 6 additions & 0 deletions Week-3-Labs/src/interfaces/IntList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package interfaces;

public interface IntList {
void add(int number);
void get(int id);
}
17 changes: 17 additions & 0 deletions Week-3-Labs/src/objects/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package objects;

public abstract class Car {
protected String vinNumber;
protected String make;
protected String model;
protected int mileage;

public abstract void getInfo();

public Car(String vinNumber, String make, String model, int mileage) {
this.vinNumber = vinNumber;
this.make = make;
this.model = model;
this.mileage = mileage;
}
}
78 changes: 78 additions & 0 deletions Week-3-Labs/src/objects/IntArrayList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package objects;

import interfaces.IntList;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class IntArrayList implements IntList {
private boolean newArrayIsCreated = false;
//private int[] intArray = new int[10];
int[] newArrayBigger;
private int[] intArray = {3,5,6,2,4,5,1,2,5,8};

@Override
public void add(int number) {
if (isFull(intArray)){
cloneAndIncreaseSize(intArray, number);
for (int i : newArrayBigger){
System.out.println( "Value: "+i);
}
}else {
for (int i = 0; i < intArray.length; i++) {
if (intArray[i]==0){
intArray[i] = number;
i = intArray.length;
System.out.println("Index: " + i +" Is empty. New value:" + intArray[i] + ". ");
}else {
System.out.println("Index: " + i +" Value:" + intArray[i]);
}
}
}
}

@Override
public void get(int id) {
if (newArrayIsCreated){
if (newArrayBigger[id] == 0){
System.out.println("Index "+ id + " is empty.");
}else {
System.out.println("Id: " + id + " Value: " + newArrayBigger[id]);
}
}else {
if (intArray[id] == 0){
System.out.println("Index "+ id + " is empty.");
}else {
System.out.println("Id: " + id + " Value: " + intArray[id]);
}
}

}


public boolean isFull(int[] array) {
for (int j : array) {
//Default value is 0 so its like be empty
if (j == 0) {
return false;
}
}
return true;
}

public void cloneAndIncreaseSize(int[] intArray, int newValue){
BigDecimal divisor = new BigDecimal(2);
BigDecimal actualSize = new BigDecimal(intArray.length);
actualSize = actualSize.divide(divisor, RoundingMode.HALF_UP);
int newSize = actualSize.intValue();
newArrayBigger = new int[intArray.length + newSize];
System.arraycopy(intArray,0,newArrayBigger, 0, intArray.length);
for (int i = 0; i < newArrayBigger.length; i++) {
if (newArrayBigger[i] == 0){
newArrayBigger[i] = newValue;
i = newArrayBigger.length;
}
}
newArrayIsCreated = true;
}
}
84 changes: 84 additions & 0 deletions Week-3-Labs/src/objects/IntVector.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package objects;

import interfaces.IntList;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class IntVector implements IntList {

private boolean newArrayIsCreated = false;
private int[] intArray = new int[2];
int[] newArrayBigger;
//private int[] intArray = {3,5, 4, 4, 7, 2};


@Override
public void add(int number) {
if (isFull(intArray)){
cloneAndIncreaseSize(intArray, number);
for (int i : newArrayBigger){
System.out.println( "Value: "+i);
}
}else {
addingValueWithoutIncreaseSize(number);
for (int i : intArray){
System.out.println("Value: "+i);
}
}
}

public void addingValueWithoutIncreaseSize(int number){
for (int i = 0; i < intArray.length; i++) {
if (intArray[i]==0){
intArray[i] = number;
System.out.println("Index: " + i +" Is empty. New value:" + intArray[i] + ". ");
i = intArray.length;
}else {
System.out.println("Index: " + i +" Value:" + intArray[i]);
}
}
}

@Override
public void get(int id) {
if (newArrayIsCreated){
if (newArrayBigger[id] == 0){
System.out.println("Index "+ id + " is empty.");
}else {
System.out.println("Id: " + id + " Value: " + newArrayBigger[id]);
}
}else {
if (intArray[id] == 0){
System.out.println("Index "+ id + " is empty.");
}else {
System.out.println("Id: " + id + " Value: " + intArray[id]);
}
}
}
public boolean isFull(int[] array) {
for (int j : array) {
//Default value is 0 so its like be empty
if (j == 0) {
return false;
}
}
return true;
}

public void cloneAndIncreaseSize(int[] intArray, int newValue){
int multiple = 2;
int actualSize = intArray.length;
actualSize = actualSize * multiple;
int newSize = actualSize;
newArrayBigger = new int[newSize];
System.arraycopy(intArray,0,newArrayBigger, 0, intArray.length);
for (int i = 0; i < newArrayBigger.length; i++)
if (newArrayBigger[i] == 0) {
newArrayBigger[i] = newValue;
i = newArrayBigger.length;
}
newArrayIsCreated = true;
}

}
15 changes: 15 additions & 0 deletions Week-3-Labs/src/objects/Movie.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package objects;

public class Movie extends Video {
protected double rating;

public Movie(String title, int duration, double rating) {
super(title, duration);
this.rating = rating;
}

@Override
public void getInfo() {
System.out.println("Movie{" + "rating=" + rating + ", title='" + title + '\'' + ", duration=" + duration + '}');
}
}
11 changes: 11 additions & 0 deletions Week-3-Labs/src/objects/Sedan.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package objects;

public class Sedan extends Car{
public Sedan(String vinNumber, String make, String model, int mileage) {
super(vinNumber, make, model, mileage);
}
@Override
public void getInfo() {
System.out.println("Vehicle: Sedan\nVinNumber= " + this.vinNumber + "\nMake= " + this.make + "\nModel: " + this.model + "\nMileage: " + this.mileage );
}
}
14 changes: 14 additions & 0 deletions Week-3-Labs/src/objects/Truck.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package objects;

public class Truck extends Car{
protected double towingCapacity;
public Truck(String vinNumber, String make, String model, int mileage, double towingCapacity) {
super(vinNumber, make, model, mileage);
this.towingCapacity = towingCapacity;
}

@Override
public void getInfo() {
System.out.println("Vehicle: Sedan\nVinNumber= " + this.vinNumber + "\nmake= " + this.make + "\nModel: " + this.model + "\nMileage: " + this.mileage + "\nBound capacity: "+ this.towingCapacity);
}
}
16 changes: 16 additions & 0 deletions Week-3-Labs/src/objects/TvSeries.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package objects;

public class TvSeries extends Video {
protected int episodes;

public TvSeries(String title, int duration, int episodes) {
super(title, duration);
this.episodes = episodes;
}

@Override
public void getInfo() {
System.out.println("TvSeries{" + "episodes=" + episodes + ", title='" + title + '\'' + ", duration=" + duration + '}');
}

}
14 changes: 14 additions & 0 deletions Week-3-Labs/src/objects/UtilityVehicle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package objects;

public class UtilityVehicle extends Car{
protected boolean fourWheelDrive;
public UtilityVehicle(String vinNumber, String make, String model, int mileage, boolean fourWheelDrive) {
super(vinNumber, make, model, mileage);
this.fourWheelDrive = fourWheelDrive;
}

@Override
public void getInfo() {
System.out.println("Vehicle: Sedan\nVinNumber= " + this.vinNumber + "\nMake= " + this.make + "\nModel: " + this.model + "\nMileage: " + this.mileage + "\nFour wheel drive: "+ this.fourWheelDrive);
}
}
13 changes: 13 additions & 0 deletions Week-3-Labs/src/objects/Video.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package objects;

public abstract class Video {
protected String title;
protected int duration;

public Video(String title, int duration) {
this.title = title;
this.duration = duration;
}

public abstract void getInfo();
}
Loading