SORU
8 Temmuz 2009, ÇARŞAMBA


Yığın üzerinde yeni bir dizi oluşturmadan Java'da bir dizinin bir parçasını kapmak

Bir dizinin bir parçasını döndüren Java bir yöntem arıyorum. Örnek bir bayt dizisi bayt bir dizi 4 ve 5 bayt içeren almak olacaktır. Yığın bellek, yeni bir bayt dizisi oluşturmak için sadece bunu yapmak istemiyorum. Şimdi aşağıdaki kodu var:

doSomethingWithTwoBytes(byte[] twoByteArray);

void someMethod(byte[] bigArray)
{
      byte[] x = {bigArray[4], bigArray[5]};
      doSomethingWithTwoBytes(x);
}

Eğer sadece 4 ofset nerede doSomething(bigArray.getSubArray(4, 2)) yapmak için bir yolu varsa bilmek isterim ve 2 uzunluğu, örneğin.

CEVAP
8 Temmuz 2009, ÇARŞAMBA


Yasal Uyarı: Bu soruya cevap verin kısıtlamaları uymuyor:

Yığın bellek, yeni bir bayt dizisi oluşturmak için sadece bunu yapmak istemiyorum.

(Dürüst olmak gerekirse, ben cevabımı silme layık olduğunu düşünüyorum. @Unique72 tarafından cevap doğru. IMA bu biraz oturup düzenlemek izin ve bu cevabı silmek edeceğim.)


Bilmiyorum, bir şekilde bunu yapmak için doğrudan diziler olmadan ek yığın ayırma, ama diğer cevapları kullanarak bir alt-liste sarıcı var ek tahsisat için sarıcı sadece – ama dizi ne kadar olabilir yararlı olması durumunda büyük bir dizi.

Bu, eğer bir kısaltma için arıyor, uygulama yöntemi Arrays.copyOfRange() Java 6 tanıtıldı 2006? geç () olduğunu söyledi:

byte [] a = new byte [] {0, 1, 2, 3, 4, 5, 6, 7};

// get a[4], a[5]

byte [] subArray = Arrays.copyOfRange(a, 4, 6);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bad Lip Reading

    Bad Lip Read

    22 Mart 2011
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • VvCompHelpvV

    VvCompHelpvV

    4 EYLÜL 2007

İLGİLİ SORU / CEVAPLAR