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

  • Droid Life

    Droid Life

    17 Kasım 2009
  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009