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

  • Greater Than Gatsby Photoshop Actions & Lightroom Presets

    Greater Than

    11 ŞUBAT 2013
  • iZAPPA

    iZAPPA

    16 Temmuz 2010
  • SRI International

    SRI Internat

    30 NİSAN 2008