Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Kataplaf en 21 Agosto 2015, 17:35 pm



Título: [Comparar ArrayList] Eliminar Duplicados
Publicado por: Kataplaf en 21 Agosto 2015, 17:35 pm
Hola estimados,
Recurro a ustedes, ya que la mayoria de mis dudas fueron resuletas en post que encontre navegando por este increible foro.

Espero que alguien me pueda ayudar con lo siguiente.

Introduccion:
Tengo una pagina con muchos FORMULARIOS de EVALUACIONES.
Cada formulario tiene 2 etapas.

ETAPA 1: Creacion de Formulario por un ADMINISTRADOR (Genera ERRORES y MARCA LAS OPCIONES CORRECTAS), luego Selecciona a x CANTIDAD de usuarios para ASIGNAR dicha EVALUACION.

ETAPA 2: El USUARIO completa la EVALUACION seleccionando las respuesta que crea son correctas. (SON TODOS RADIOBOTONS Y CADA RADIO REPRESENTA A UN TIPO DE RESPUESTA).

Bien, ahora, por medio de 1 consulta SQL obtengo 2 listas de tipo ArrayList<ArrayList>.
La primera, es el TOTAL DE EVALUACIONES Y CADA RESPUESTA MARCADA. es decir tiene este formato:

[
  EVALUACION1
    [
      RESPUESTA 1
      RESPUESTA 2
      RESPUESTA 3
    ]
]

El segundo listado son los RESULTADOS de la EVALUACION que tienen el mismo formato:

[
  EVALUACION1
    [
      RESPUESTA 1
      RESPUESTA 2
      RESPUESTA 3
    ]
]

... Bien por medio de JAVA o javascript necesito machear por cada EVALUACIÓN que realizo un USUARIO compare el ID DE RESPUESTA con la lista de RESULTADOS

Ejemplo:

Primer LISTA:
EVALUCION1
 [
   RESPUESTA1: 401
   RESPUESTA1: 500
   RESPUESTA1: 610
 ]

Segunda LISTA:
EVALUCION1
 [
   RESPUESTA1: 401
   RESPUESTA1: 540
   RESPUESTA1: 610
 ]

Necesito generar una lista nueva con las diferencias entre ambos. es decir que la lista MACHEO sea la siguiente:


Segunda LISTA:
EVALUCION1
 [
       RESPUESTA1: 540
 ]

Probando con JAVA logre encontrar cuales fueron las RESPUESTAS CORRECTAS:
Código:
var resultado_igual = [];
var test = [];
var test2 = [];
var resultado_igual = [];
var salida_igual=[];
var resultado = [];
var aux = "";
var aux2 = "";

var calibracion_usuarios = [[530,533,617],[530,533,617],[530,534,611],[544,548,627],[544,549,628]];

var calibracion_rector = [[530,533,617],[530,533,617],[530,533,617],[544,548,627],[544,530,617]];

for ( var a = 0; a < calibracion_usuarios.length; a++) {
test = calibracion_usuarios[a];
test2 = calibracion_rectores[a];
salida_igual = [];
for ( var b = 0; b < test.length; b++) {
aux = test[b];
for ( var c = 0; c < test2.length; c++) {
aux2 = test2[c];
if(aux == aux2){
salida_igual.push(aux);
}
}
}
resultado_igual.push(salida_igual);
}

resultado_igual = [[530,533,617],[530,533,617],[530],[544,548,627],[544]]

PEDIDO FORMAL:
Necesito crear un nuevo ArrayList<ArrayList> similar al de "RESPUESTA CORRECTAS" (resultado_igual),
Con la diferencia que en esta nueva lista, esten los valores DIFERENTES.

Aguardo su respuesta.

Desde ya muchisimas gracias.