[POO] aula06 ex3 added
This commit is contained in:
parent
710c3d6f84
commit
0a08a6ce92
|
@ -0,0 +1,95 @@
|
||||||
|
package aula06;
|
||||||
|
|
||||||
|
public class Vector {
|
||||||
|
private int[] vector;
|
||||||
|
|
||||||
|
// Constructors and main getter
|
||||||
|
public Vector() {
|
||||||
|
this.vector = new int[0];
|
||||||
|
}
|
||||||
|
public Vector(int size) {
|
||||||
|
this.vector = new int[size];
|
||||||
|
}
|
||||||
|
public Vector(int[] vector) {
|
||||||
|
this.vector = vector;
|
||||||
|
}
|
||||||
|
public int[] getVector() {
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getters
|
||||||
|
public int size() {
|
||||||
|
return this.vector.length;
|
||||||
|
}
|
||||||
|
public boolean contains(int value) {
|
||||||
|
for (int n : this.vector)
|
||||||
|
if (n == value)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public int count(int value) {
|
||||||
|
int count = 0;
|
||||||
|
for (int n : this.vector)
|
||||||
|
if (n == value)
|
||||||
|
count++;
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method to change values
|
||||||
|
public void insert(int value) {
|
||||||
|
if (this.contains(value)) return;
|
||||||
|
int[] aux = new int[this.size()+1];
|
||||||
|
System.arraycopy(this.vector, 0, aux, 0, this.size());
|
||||||
|
aux[this.size()] = value;
|
||||||
|
this.vector = aux;
|
||||||
|
}
|
||||||
|
public void remove(int value) {
|
||||||
|
int[] aux = new int[this.size()-this.count(value)];
|
||||||
|
int i = 0;
|
||||||
|
for (int n : this.vector) {
|
||||||
|
if (n == value)
|
||||||
|
continue;
|
||||||
|
aux[i] = n;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
this.vector = aux;
|
||||||
|
}
|
||||||
|
public void empty() {
|
||||||
|
this.vector = new int[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interact with other vectors
|
||||||
|
public Vector add(Vector secondVector) {
|
||||||
|
Vector result = new Vector();
|
||||||
|
for (int n : this.vector)
|
||||||
|
if (!result.contains(n))
|
||||||
|
result.insert(n);
|
||||||
|
for (int n : secondVector.vector)
|
||||||
|
if (!result.contains(n))
|
||||||
|
result.insert(n);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
public Vector subtract(Vector secondVector) {
|
||||||
|
Vector result = new Vector();
|
||||||
|
for (int n : this.vector)
|
||||||
|
if (!result.contains(n) && !secondVector.contains(n))
|
||||||
|
result.insert(n);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
public Vector intersect(Vector secondVector) {
|
||||||
|
Vector result = new Vector();
|
||||||
|
for (int n : this.vector)
|
||||||
|
if (!result.contains(n) && secondVector.contains(n))
|
||||||
|
result.insert(n);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToString
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
for (int n : this.vector)
|
||||||
|
result.append(String.format("%d ", n));
|
||||||
|
return this.size() > 0 ? result.substring(0, result.length()-1) : result.toString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package aula06;
|
||||||
|
|
||||||
|
|
||||||
|
public class VectorTest {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Vector c1 = new Vector();
|
||||||
|
c1.insert(4); c1.insert(7); c1.insert(6); c1.insert(5);
|
||||||
|
|
||||||
|
Vector c2 = new Vector();
|
||||||
|
int[] test = { 7, 3, 2, 5, 4, 6, 7};
|
||||||
|
for (int el : test) c2.insert(el);
|
||||||
|
c2.remove(3); c2.remove(5); c2.remove(6);
|
||||||
|
|
||||||
|
System.out.println(c1);
|
||||||
|
System.out.println(c2);
|
||||||
|
|
||||||
|
System.out.println("Número de elementos em c1: " + c1.size());
|
||||||
|
System.out.println("Número de elementos em c2: " + c2.size());
|
||||||
|
|
||||||
|
System.out.println("c1 contém 6?: " + ((c1.contains(6) ? "sim" : "não")));
|
||||||
|
System.out.println("c2 contém 6?: " + ((c2.contains(6) ? "sim" : "não")));
|
||||||
|
|
||||||
|
System.out.println("União:" + c1.add(c2));
|
||||||
|
System.out.println("Interseção:" + c1.intersect(c2));
|
||||||
|
System.out.println("Diferença:" + c1.subtract(c2));
|
||||||
|
|
||||||
|
c1.empty();
|
||||||
|
System.out.println("c1:" + c1);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue