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

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • fufko

    fufko

    27 ŞUBAT 2006
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010

İLGİLİ SORU / CEVAPLAR