La primera:
Realización de las ideas: el uso de dos para un bucle a través del conjunto de todos los elementos, y después determina si el mismo elemento, en su caso, se elimina. Este enfoque es la mayor parte del primer pensamiento es la implementación más sencilla.
Entre ellos, de esta manera podemos garantizar la recogida Lista de orden original sin cambios.
/ ** * Notas:使用两个para循环Lista实现去重 * @param lista * @return * / pública estática Lista repeatListWayOne (List <String> lista) { a ( int i = 0; i <list.size () ; i ++ ) { para ( int j = i + 1; j <list.size (); j ++ ) { si (list.get (i) .equals (list.get (j))) { list.remove (j) ; } } } Regresar lista; }
El segundo:
Realización de las ideas: sabemos interfaz implementa hashset Set no permite elementos duplicados. Puede estar basado en esta idea, el conjunto de todos los elementos en el objeto de lista HashSet, y luego borrar todos los elementos de la colección de lista,
Finalmente se añade objeto HashSet a la lista de todos los elementos de la colección, a fin de garantizar la no duplicación de elementos. Y hay un HashSet elementos de constructor pueden añadirse directamente durante la inicialización. Lo cual, HashSet no garantiza el orden sin cambios, por lo que este método no puede garantizar la recogida Lista de orden original sin cambios.
/ ** * Notas: Lista de usar para lograr HashSet peso * @param lista * @return * / pública estática Lista repeatListWayTwo (List <String> lista) { // inicializar el objeto HashSet, la lista de objetos y el elemento asignado al objeto HashSet HashSet SET = new new HashSet (Lista); // el conjunto de todos los elementos de Lista vacía list.clear (); // añadir al conjunto de objetos de lista HashSet list.addAll (SET); retorno Lista; }
En tercer lugar:
Realización de las ideas: Colección TreeSet también implementa la interfaz conjunto, es un elementos ordenados, y no repetidas de la colección. Del mismo modo, podemos ir re-pensar sobre la base de las dos formas anteriores. En donde, la lista puede ser re-establece en el orden original y son coherentes.
/ ** * Notas: Lista de usar para lograr el peso TreeSet * @param lista * @return * / pública estática Lista repeatListWayThird (List <String> lista) { // Inicializar lista de objetos TreeSet y el elemento asignado a los objetos TreeSet TreeSet SET = nueva nueva TreeSet (Lista); // el conjunto de todos los elementos de Lista vacía list.clear (); // añadir a la lista de objetos conjunto TreeSet list.addAll (SET); retorno Lista; }
cuarto:
Realización de las ideas: el uso de recorrer la colección de lista contiene método, primero debe crear una nueva colección de lista, a continuación, recorrer la colección de lista original para determinar si la nueva colección contiene una colección de edad, y si es así, no se añade a la nueva colección, de lo contrario agregar.
Por último, la colección de edad vació, la nueva colección de elementos asignados a la antigua colección.
/ ** * Notas: Método de eliminación de datos duplicados utilizando un bucle a través de la lista contiene un conjunto de * @ param Lista * @return * / pública estática Lista repeatListWayFourth (List <String> Lista) { // el nuevo conjunto de nueva lista, para el almacenamiento de deduplicación elementos de List <String> newList = nuevo nuevo el ArrayList <String> (); // bucle a través del viejo conjunto de elementos para ( int i = 0; I <list.size (); I ++ ) { // determina si el nuevo conjunto comprende, si no contiene, entonces el nuevo conjunto almacenado de Boole isContains = newList.contains (List.get (I)); SI (! isContains) { newList.add (List.get (I)); } } // el conjunto de todos los elementos de Lista vacía list.clear (); // añadir un nuevo conjunto de elementos de un conjunto de Lista list.addAll (newList); retorno Lista; }
Resumen: La segunda manera es la mejor manera de volver a codificar el más simple y el tiempo total más rápido.