SORU
18 ŞUBAT 2009, ÇARŞAMBA


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
18 ŞUBAT 2009, ÇARŞAMBA


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]);

...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008