Es esta clase la pura salud?
Publicado por Jordi (135 intervenciones) el 26/04/2018 22:36:57
Pues eso, que ya hace tiempo me he dado cuenta que infinidad de veces necesito pasar dos datos a la vez de un sitio a otro, por ejemplo los puntos xy de una entidad en un plano, o los puntos xy de un componente de swing.
En un par de ocasiones usé la clase Point, pero no me terminó de convencer ya que para simplemente pasar datos de un sitio a otro me parecía un poco desperdicio de memoria: la clase tiene multitud de métodos. Sobretodo cuando tienes un array de 2000 puntos, pues hasta lo más mínimo termina sumando.
También están los diccionarios y tal, que en cierto modo también permitirían pasar datos en parejas, pero tienen muchas cosas que no necesito, entonces hice esta clase y me lo estoy pasando genial usándola en todas partes:
Que os parece? Lo que más me trae de cabeza es lo del equals.
En un par de ocasiones usé la clase Point, pero no me terminó de convencer ya que para simplemente pasar datos de un sitio a otro me parecía un poco desperdicio de memoria: la clase tiene multitud de métodos. Sobretodo cuando tienes un array de 2000 puntos, pues hasta lo más mínimo termina sumando.
También están los diccionarios y tal, que en cierto modo también permitirían pasar datos en parejas, pero tienen muchas cosas que no necesito, entonces hice esta clase y me lo estoy pasando genial usándola en todas partes:
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
/**Esta clase guarda dos elementos juntos. Puede ser muy útil por ejemplo para guardar
* posiciones de un array de varias dimensiones en una sola variable y de forma sencilla.
* A diferencia de los diccionarios, esta clase no crea relaciones de Key --> Value.*/
public class Dual <T0, T1>{
private T0 a;
private T1 b;
public Dual(T0 a, T1 b) {
this.a=a;
this.b=b;
}
/**The return is a==d.getA()&&b==d.getB(), then for objects that needs .equals() to be
* compared this method will cause unexpected results.*/
public boolean equals(Dual<T0,T1> d) {
return a.equals(d.getA())&&b.equals(d.b);
}
public T0 getA() {
return a;
}
public void setA(T0 a) {
this.a=a;
}
public T1 getB() {
return b;
}
public void setB(T1 b) {
this.b=b;
}
}
Que os parece? Lo que más me trae de cabeza es lo del equals.
Valora esta pregunta


-1