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

  • eHow

    eHow

    27 NİSAN 2006
  • Marissah Simonini

    Marissah Sim

    25 HAZİRAN 2013
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010