Java: çiftleri ArrayList olarak Algılamak?
Nasıl bir ArrayList Java aynı eleman birden fazla içerip içermediğini tespit hakkında (doğru/yanlış dönen) gidebilir miyim?
Çok teşekkürler, Terry
Edit Birbirine "ama tamsayı değerleri ile. Blok karşılaştırma yapmak istemiyorum bunu söylemeyi unutmuşum Her "bir int, ve bu" onları farklı kılan da budur.blok Bir yöntemini çağırarak belirli bir Blok int "getNum" (örneğin tablo1[0][2].adlı buluyorum() getNum;
CEVAP
Basit: ((Toplama) Set oluşturucu kullanarak veya Ayarlayın.içine bütün toplama dökümü addAll), sonra Set ArrayList olarak aynı boyutta olup olmadığını görmek.
List<Integer> list = ...;
Set<Integer> set = new HashSet<Integer>(list);
if(set.size() < list.size()){
/* There are duplicates */
}
Güncelleme: Eğer soru anlamamışsam, Blok 2 boyutlu bir dizi var gibi
Blok tablo[][];
ve eğer herhangi bir satır çiftleri varsa algılamak ister misin?
Bu durumda, aşağıdaki, Blok uygulayan varsayarak düşünüyorum. "" ve "hashCode" doğru: eşittir
for (Block[] row : table) {
Set set = new HashSet<Block>();
for (Block cell : row) {
set.add(cell);
}
if (set.size() < 6) { //has duplicate
}
}
Sözdizimi için 0 emin değilim, daha güvenli olarak yazmak olabilir
for (int i = 0; i < 6; i ) {
Set set = new HashSet<Block>();
for (int j = 0; j < 6; j )
set.add(table[i][j]);
...
'kamu, varsayılan olarak korumalı...
Neden Java Vector sınıfı eski veya kul...
Neden Java statik olarak bir sınıf bil...
Nasıl bir dize olarak yöntem adı veril...
Java Dize dizisi için ArrayList içeren...