Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] crear lista a partir de otras dos

Estas en el tema de crear lista a partir de otras dos en el foro de Java en Foros del Web. hola amigos tengo una duda estoy intentando crear una cadena formada a partir de otras dos, tengo la cadena 1 [a] [b] [c] [d] [e] ...
  #1 (permalink)  
Antiguo 30/04/2013, 06:01
 
Fecha de Ingreso: agosto-2011
Ubicación: Leganés
Mensajes: 14
Antigüedad: 12 años, 8 meses
Puntos: 1
Pregunta crear lista a partir de otras dos

hola amigos tengo una duda estoy intentando crear una cadena formada a partir de otras dos,

tengo la cadena 1 [a] [b] [c] [d] [e]
y la cadena 2 [a] [c] [d]

ahora quiero que me cree una cadena 3 [b][e]

es decir comparar ambas cadenas y crear una tercera con los elementos que no se repiten, en principio estoy utilizando listas de objetos.

he probado con dos bucles for pero no lo consigo, y no me deja modificar una lista que esta siendo iterada. espero que exista una clase que lo haga pero no se cual es.

muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 30/04/2013, 06:19
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: crear lista a partir de otras dos

Cita:
Iniciado por Vecinito87 Ver Mensaje
he probado con dos bucles for pero no lo consigo, y no me deja modificar una lista que esta siendo iterada. espero que exista una clase que lo haga pero no se cual es.
Porque necesitas modificarla? Porque no crear una tercera lista con el resultado?
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 01/05/2013, 16:47
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 1 mes
Puntos: 12
Respuesta: crear lista a partir de otras dos

por que listas y no conjuntos,parece mas bien una operacion entre conjuntos (diferencia)lo que queres obtener.Tenes una interfaz Set y varias clases que la implementan que te pueden servir.

Saludos.
  #4 (permalink)  
Antiguo 02/05/2013, 02:45
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: crear lista a partir de otras dos

Si quiere operar con arreglos tendrá que hacer lo de crear el tercer arreglo o devolverlo como arreglo sin necesidad de crearlo.

Yo haría algo así:

String composicion = "";
for (int i = 0; i<cadena1.length; i++) {
boolean existeDuplicado = false;
for (int j = 0; j<cadena2.length; j++) {
if (cadena1[i].equals(cadena2[j])) { // Pongo equals porque supongo que son Strings las letras, si fuesen chars seria ==
existeDuplicado = true;
break;
}
}
if (existeDuplicado) {
if (!composicion.equals("")) {
composicion += ","+cadena1[i];
} else {
composicion += cadena1[i];
}
}
}
return composicion.split(",");
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Última edición por Fuzzylog; 02/05/2013 a las 02:53
  #5 (permalink)  
Antiguo 08/05/2013, 05:22
 
Fecha de Ingreso: agosto-2011
Ubicación: Leganés
Mensajes: 14
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: crear lista a partir de otras dos

Bueno gracias a todos por contestar, en principio empece a usar el método de Fuzzylog, pero en grails parecía un poco rudimentario así que seguí buscando y encontré unos mapeos, os cuelgo lo que hice:

Para la clase de dominio añadí algo tal que así:

public Map<Tramite, DatosTramite> getDatosTramitePorTramite() {
def mapa = [ : ]
for(DatosTramite dt : datosTramite)
mapa.put(dt.tramite, dt)
return mapa
}

donde Tramite es la key y DatosTramite los valores

Luego en la vista accedo a el mediante:
${mod.getDatosTramitePorTramite().get(un_tramite). atributo}

Tramite y DatosTramite son dos clases de mi modelo donde un tramite tiene muchos datosTramite, espero que le sirva a alguien, así me evito tener que compara dos listas
donde "un_tramite es un elemento de la lista 1"
y donde "mod" contiene una lista 2 con más tramites.

Gracias a todos.

Etiquetas: lista, repite
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:18.