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

  • Kassem G

    Kassem G

    25 EKİM 2006
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008
  • TrenchTech Computer Repair Tutorials

    TrenchTech C

    19 EYLÜL 2014

İLGİLİ SORU / CEVAPLAR