Ir al contenido principal

removeAll UnsupportedOperationException

Hoy jugando con listas que venían de arrays de String, al ejecutar la siguiente linea me retornaba UnsupportedOperationException
lista.removeAll(otralista);
El problema es que para generar las listas estaba usando esto:
List<String> lista = Arrays.asList(array);
Este metodo, aunque retorna una lista, es una lista estatica, que no permite ni añadir ni borrar elementos, por lo que al usar el removeAll petaba.

¿La solucion? Segun este post de stackoverflow, pasa por crear una nueva lista usando como parámetro de constructor el resultado de asList()
List<String> lista = new LinkedList<String>(Arrays.asList(array));

Comentarios

Entradas populares de este blog

Formatear fecha JSON

Para poder representar de forma bonita y humana una fecha retornada por un JSON por ejemplo, la función quedaría tal que así. En mi caso, el formato esperado es: dd/MM/yyyy hh:mm

function FormatDate(fecha) { var fechaObj = new Date(fecha); return (fechaObj.getDate() < 10 ? '0' : '') + fechaObj.getDate() + '/' + (fechaObj.getMonth() < 10 ? '0' : '') + fechaObj.getMonth() + '/' + fechaObj.getYear() + ' ' + (fechaObj.getHours() < 10 ? '0' : '') + fechaObj.getHours() + ':' + (fechaObj.getMinutes() < 10 ? '0' : '') + fechaObj.getMinutes(); };

Generar números aleatorios con Postgres

Muchas veces nos encontraremos con que tenemos que poblar una BD con numeros para poder testear un funcionalidad que estemos programando. En postgres es tan sencillo como:

update schema.tabla set columnaNumerica = floor(random() * N) + desviacion;
Con desviación me refiero a que, si no lo añadimos, random generara numeros empezando por el 0 hasta N. El uso de floor es para redondear y quedarme solo con la parte entera. Ya que random genera floats entre 0 y 1.

Espero os sirva este pequeño truquillo. Un saludico.