Java'da Boolean bir Dizi doldurma
Oldukça yeşil bir Java kodlayıcı olarak kendimi basit bir metin macera yazmaya çalışıyorum ağır bir meydan okuma olarak ayarladım. Şaşırtıcı olmayan bir şekilde, zaten zorluklarla karşılaştım!
Konum Dersim ihtiva ettiği saklamak için bir özellik vermeye çalışıyorum. Aslında doğru/yanlış değerleri her bir çıkış gösteren tutun bunun için boolean bir dizi kullandım. O tamamen ikna olmuş değilim
a)bu bunu yapmak için en etkili yoldur
b)dizi doldurmak için doğru kodu kullanıyorum.
Eğer tam bir kod üzerinde mesafe için bile olsa her türlü geribildirim takdir ediyorum!
Bir yerde başlatmasını, şu anda, ben setExits yöntemi ile göndermek hangi bir ip oluşturun
String e = "N S U";
secretRoom.setExits(e);
Konum sınıfta, setExits bu gibi görünüyor:
public void setExits(String e) {
if (e.contains("N"))
bexits[0] = true;
else if (e.contains("W"))
bexits[1] = true;
else if (e.contains("S"))
bexits[2] = true;
else if (e.contains("E"))
bexits[3] = true;
else if (e.contains("U"))
bexits[4] = true;
else if (e.contains("D"))
bexits[5] = true;
}
Dürüst olacağım, bu özellikle hantal görünüyor bence, ama bunu yapmak için başka bir yol bulamadım. GetExits yöntemi nasıl yazacağımı da tamamen emin oldum
Her türlü yardıma açığız!
CEVAP
En verimliveetkileyici yolu şudur:
Çıkar çıkmaz enum
s EnumSet
bunları saklamak için kullanın. EnumSet
bit alanı numaralandırma sabitleri temsil etmek için kullandığı Set
etkili bir uygulama.
Bunu nasıl burada
public enum Exit { North, West, South, East, Up, Down; }
EnumSet<Exit> set = EnumSet.noneOf(Exit.class); // An empty set.
// Now you can simply add or remove exits, everything will be stored compactly
set.add(Exit.North); // Add exit
set.contains(Exit.West); // Test if an exit is present
set.remove(Exit.South); //Remove an exit
Numaralama seti kodunuzu etkileyici yani long
her bir çıkış saklama, hızlı ve bellek bir sürü kaydeder.