EDYTOWAĆ
Oto dwie wersje. Jeden używający ArrayList
i inny używającyHashSet
Porównaj je i stwórz z tego własną wersję, aż uzyskasz to, czego potrzebujesz.
To powinno wystarczyć do pokrycia:
PS: To nie jest zadanie szkolne :) Więc jeśli mnie poprowadzisz, to wystarczy
część twojego pytania.
kontynuując pierwotną odpowiedź:
Możesz użyć do tego a java.util.Collection
i / lub java.util.ArrayList
.
Metoda retainAll wykonuje następujące czynności:
Zachowuje tylko elementy w tej kolekcji, które znajdują się w określonej kolekcji
zobacz tę próbkę:
import java.util.Collection;
import java.util.ArrayList;
import java.util.Arrays;
public class Repeated {
public static void main( String [] args ) {
Collection listOne = new ArrayList(Arrays.asList("milan","dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"));
Collection listTwo = new ArrayList(Arrays.asList("hafil", "iga", "binga", "mike", "dingo"));
listOne.retainAll( listTwo );
System.out.println( listOne );
}
}
EDYTOWAĆ
W drugiej części (podobne wartości) możesz użyć metody removeAll :
Usuwa wszystkie elementy tej kolekcji, które są również zawarte w określonej kolekcji.
Ta druga wersja podaje również podobne wartości i uchwyty powtórzone (odrzucając je).
Tym razem Collection
może to być a Set
zamiast a List
(różnica polega na tym, że zestaw nie pozwala na powtarzanie wartości)
import java.util.Collection;
import java.util.HashSet;
import java.util.Arrays;
class Repeated {
public static void main( String [] args ) {
Collection<String> listOne = Arrays.asList("milan","iga",
"dingo","iga",
"elpha","iga",
"hafil","iga",
"meat","iga",
"neeta.peeta","iga");
Collection<String> listTwo = Arrays.asList("hafil",
"iga",
"binga",
"mike",
"dingo","dingo","dingo");
Collection<String> similar = new HashSet<String>( listOne );
Collection<String> different = new HashSet<String>();
different.addAll( listOne );
different.addAll( listTwo );
similar.retainAll( listTwo );
different.removeAll( similar );
System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different);
}
}
Wynik:
$ java Repeated
One:[milan, iga, dingo, iga, elpha, iga, hafil, iga, meat, iga, neeta.peeta, iga]
Two:[hafil, iga, binga, mike, dingo, dingo, dingo]
Similar:[dingo, iga, hafil]
Different:[mike, binga, milan, meat, elpha, neeta.peeta]
Jeśli nie robi dokładnie tego, czego potrzebujesz, daje ci dobry początek, więc możesz sobie z tym poradzić.
Pytanie do czytelnika: Jak zawarłbyś wszystkie powtarzające się wartości?