BEARBEITEN
Hier sind zwei Versionen. Eine Verwendung ArrayList
und eine andere VerwendungHashSet
Vergleichen Sie sie und erstellen Sie daraus Ihre eigene Version, bis Sie das bekommen, was Sie brauchen.
Dies sollte ausreichen, um Folgendes abzudecken:
PS: Es ist keine Schulaufgabe :) Wenn du mich also nur führst, wird es ausreichen
Teil Ihrer Frage.
Fortsetzung der ursprünglichen Antwort:
Sie können ein java.util.Collection
und / oder verwenden java.util.ArrayList
dafür verwenden.
Die RetainAll- Methode führt Folgendes aus:
Behält nur die Elemente in dieser Sammlung bei, die in der angegebenen Sammlung enthalten sind
siehe dieses Beispiel:
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 );
}
}
BEARBEITEN
Für den zweiten Teil (ähnliche Werte) können Sie die removeAll- Methode verwenden:
Entfernt alle Elemente dieser Sammlung, die auch in der angegebenen Sammlung enthalten sind.
Diese zweite Version gibt Ihnen auch die ähnlichen Werte und Handles wiederholt (indem Sie sie verwerfen).
Diesmal Collection
könnte das ein Set
statt eines sein List
(der Unterschied ist, dass das Set keine wiederholten Werte zulässt)
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);
}
}
Ausgabe:
$ 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]
Wenn es nicht genau das tut, was Sie brauchen, haben Sie einen guten Start, damit Sie von hier aus damit umgehen können.
Frage an den Leser: Wie würden Sie alle wiederholten Werte einbeziehen?