Java İki Liste Karşılaştırın
İki liste ( java listeleri, iki sütun diyebilirsiniz) var
Örneğin
**List 1** **Lists 2**
milan hafil
dingo iga
iga dingo
elpha binga
hafil mike
meat dingo
milan
elpha
meat
iga
neeta.peeta
Birçok unsuru aynı nasıl döndüren bir yöntem istiyorum. Bu örnek için olmalıdır Ve Liste ve farklı değerler de bana benzer değerleri de dönmelidir 3.
Benim sonuç almak için ne Evet hashmap kullanmalıyım?
Yardım lütfen
Sen sadece bana yol eğer yeterli olacak P. S: bir okul ödevi değil:)
CEVAP
EDİT
Burada iki versiyonu. ArrayList
ve diğer bir kullanma HashSet
Onları karşılaştırın ve oluşturunkendibu sürüm, size ihtiyacınız olan her şeyi elde edene kadar.
Bu karşılamak için yeterli olmalıdır:
Sen sadece bana yol eğer yeterli olacak P. S: bir okul ödevi değil:)
sorunuza bir parçası.
orijinal cevap devam:
java.util.Collection
ve/veya java.util.ArrayList
bunun için kullanabilirsiniz.
retainAll yöntemi aşağıdakileri yapar:
Korur, belirtilen koleksiyonda bulunan bu koleksiyon öğeleri
bakın bu örnek:
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 );
}
}
EDİT
( Benzer değerler ) ikinci bölümü için removeAll yöntemi kullanabilirsiniz:
Bu koleksiyon kaldırır da, belirtilen koleksiyonda içerdiği öğeleri.
Bu ikinci versiyonu da benzer değerleri ve kolları ve defalarca onları atarak) verir.
Bu sefer Collection
List
( fark, Set yinelenen değerlere izin vermez) yerine Set
olabilir
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);
}
}
Çıkış:
$ 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]
Eğer tam olarak neye ihtiyacınız mı değil mi, buradan halledebilirsin çok iyi bir başlangıç verir.
Okuyucuya soru: Nasıl yinelenen değerler vardır ki?
Java nasıl yeni bir Liste yapmak için...
Kolay bir Set için bir Liste dönüştürm...
Liste<Köpek> Listenin alt<Hay...
Liste dönüştürmek için nasıl<Tamsay...
Java nasıl iki liste katılabilirim?...