-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathVector.java
150 lines (128 loc) · 3.39 KB
/
Vector.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class Vector implements Data, VLS, VL, VLSM {
public LinkedList<Data> vector;
public int size(){return vector.size();}
public Vector() {
vector = new LinkedList<>();
}
public void addData(Data data){
vector.addLast(data);
}
@Override
public double suma() {
double n=0;
for(Data x:vector)
n+=Double.parseDouble(x.toString());
return n;
}
@Override
public double restar() {
double n=Double.parseDouble(vector.getFirst().toString());
double aux=n;
for(Data x:vector)
n-=Double.parseDouble(x.toString());
return n+aux;
}
@Override
public double multiplicar() {
double n=1;
for(Data x:vector)
n*=Double.parseDouble(x.toString());
return n;
}
@Override
public double dividir() {
double n=Double.parseDouble(vector.getFirst().toString());
double aux=n;
for(Data x:vector)
n/=Double.parseDouble(x.toString());
return n*aux;
}
@Override
public Data functionget(Data element, Data defecto) {
if (defecto!=null)
return defecto;
if (vector.size()>Double.parseDouble(element.toString()))
return vector.get((int)Double.parseDouble(element.toString()));
return new Nil();
}
@Override
public Data functionfirst() {
return vector.getFirst();
}
public void addDataLista(Data data){
vector.addFirst(data);
}
public Object getData(){
return vector;
}
public void setData(Object l) {
vector = ((LinkedList<Data>) (l));
}
public Boolean contains( Data element){
for (Data x:vector){
if(x.equals(element))
return true;
}
return false;
}
@Override
public String toString() {
return vector.toString();
}
@Override
public Data getDataWithNTH(Integer n) {
if(vector.size() < n)
return null;
return vector.get(n);
}
@Override
public boolean equals(Object o) {
if(o instanceof Vector) {
Vector aux = (Vector) o;
if(aux.size()!=vector.size())
return false;
if (!aux.toString().equals(vector.toString()))
return false;
/*for (Data x:vector)
if (!aux.contains(x))
return false;*/
return true;
}
if(o instanceof Lista) {
Lista aux = (Lista) o;
if(aux.size()!=vector.size())
return false;
if (!aux.toString().equals(vector.toString()))
return false;
/*for (Data x:vector)
if (!aux.contains(x))
return false;*/
return true;
}
return false;
}
@Override
public int hashCode() {
return vector.hashCode();
}
public void into(VLSM vlsm) {
List<Data> l = vlsm.copyData();
for(Data data: l)
addData(data);
}
@Override
public List<Data> copyData() {
return vector;
}
@Override
public Object clone() {
try {
return super.clone();
} catch (Exception e){
return null;
}
}
}