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

  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • sghaff1

    sghaff1

    23 Mart 2009
  • spederson7

    spederson7

    17 Temmuz 2006

İLGİLİ SORU / CEVAPLAR