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

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • JTechTalk

    JTechTalk

    11 Temmuz 2010