SORU
18 Aralık 2013, ÇARŞAMBA


Switch case deyimi bir dizi olarak kullanın

Switch ifadesinde bir dizi kullanmak böyle bir şey, yani, yapmaya çalışıyorum. Olası Java mı? Değil, olası bir çözüm lütfen açıklamama değil.

boolean[] values = new boolean[4];

values[0] = true;
values[1] = false;
values[2] = false;
values[3] = true;

switch (values) {
    case [true, false, true, false]:
        break;
    case [false, false, true, false]:
        break;
    default:
        break;
}

CEVAP
18 Aralık 2013, ÇARŞAMBA


@sᴜʀᴇsʜ ᴀᴛᴛᴀ haklı. Ama bir şey eklemek istedim. Java beri 7, switch deyimleri ile bir şeyler yapabileceğini böylece Dizeleri destekler.Gerçekten çok pisve ben tavsiye etmiyorum, ama bu çalışır:

boolean[] values = new boolean[4];

values[0] = true;
values[1] = false;
values[2] = false;
values[3] = true;

switch (Arrays.toString(values)) {
    case "[true, false, true, false]":
        break;
    case "[false, false, true, false]":
        break;
    default:
        break;
}

Haklısın, bu süper hızlı değil. bu performansı endişe için: Böyle bir şey derlenmiş olacak:

String temp = Arrays.toString(values)
int hash = temp.hashCode();
switch (hash)
{
    case 0x23fe8da: // Assume this is the hashCode for that
                    // original string, computed at compile-time
        if (temp.equals("[true, false, true, false]"))
        {

        }
        break;
    case 0x281ddaa:
        if (temp.equals("[false, false, true, false]"))
        {

        }
        break;

    default: break;
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EminemVEVO

    EminemVEVO

    12 Mayıs 2009
  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011