java - suma - programa que imprima los numeros pares en c++
Creando una lista de pares en java (6)
¿Qué clase funcionaría mejor para una lista de pares no ordenada? Tomaré un montón de pares (flotantes, cortos) y tendré que ser capaz de realizar operaciones matemáticas simples (como multiplicar el par para devolver un solo flotador, etc.). Listar solo toma un argumento, y HashMap no permitirá duplicados (que yo sepa). ¿Alguna idea?
Parece que necesita crear su propia clase de pareja (vea la discusión aquí ). Luego haz una lista de esa clase de pareja que creaste
Si desea multiplicidades, puede ponerlo en el mapa que mapea par a ammount. De esta manera solo habrá un par de valores dados, pero puede representar múltiples apariciones.
Entonces, si tiene muchos valores de repetición y desea realizar alguna operación en todos los valores, puede guardar muchos cálculos.
Similar a lo que Mark E ha propuesto, tienes que crear uno propio. Solo para ayudarlo un poco, hay un buen artículo http://gleichmann.wordpress.com/2008/01/15/building-your-own-literals-in-java-tuples-and-maps/ que le brinda una Una forma realmente nítida de crear tuplas y mapas que podrían ser algo que usted debería considerar.
Solo arreglando algunos pequeños errores en el código de Mark Elliot:
public class Pair<L,R> {
private L l;
private R r;
public Pair(L l, R r){
this.l = l;
this.r = r;
}
public L getL(){ return l; }
public R getR(){ return r; }
public void setL(L l){ this.l = l; }
public void setR(R r){ this.r = r; }
}
Utilice una lista de instancias de clase personalizada. La clase personalizada es una especie de par o coordenada o lo que sea. Entonces solo
List<Coordinate> = new YourFavoriteListImplHere<Coordinate>()
Este enfoque tiene la ventaja de que cumple con este requisito "realizar operaciones matemáticas simples (como multiplicar el par para devolver un solo flotante, etc.)" limpio, porque su clase personalizada puede tener métodos para las matemáticas que necesite hacer ...
Puede usar la clase Entry<U,V>
que usa HashMap
pero se quedará atascado con su semántica de getKey
y getValue
:
List<Entry<Float,Short>> pairList = //...
Mi preferencia sería crear tu propia clase de Pair
simple:
public class Pair<L,R> {
private L l;
private R r;
public Pair(L l, R r){
this.l = l;
this.r = r;
}
public L getL(){ return l; }
public R getR(){ return r; }
public void setL(L l){ this.l = l; }
public void setR(R r){ this.r = r; }
}
Luego, por supuesto, haga una List
utilizando esta nueva clase, por ejemplo:
List<Pair<Float,Short>> pairList = new ArrayList<Pair<Float,Short>>();
También puede hacer siempre una List
de List
, pero es difícil imponer el tamaño (que solo tiene pares) y, como con las matrices, se le exigirá que escriba de manera consistente.