2016-04-14 21 views
-1

Hem doğrusal hem de ikili arama yöntemlerini kullanan bir program üzerinde çalışıyorum. Her ne kadar kodlama konusunda oldukça yeniyim ve bu durumda yanlış yaptığımdan emin değilim. İşte relavent olması gerektiğini düşünüyorum kodudur (daha görmek gerek bana bildirin):.toArray kullanırken eksik belirteç

ArrayList <Books> list = new ArrayList <Books>(); 

Books[] bookslist = new Books[list.size()]; 
list.toArray(bookslist); 

konu üçüncü uyumludur. Her ne kadar aynı kod modelini kullanan birçok benzer örneği görsem de benimki işe yaramaz. Sadece bunu ve tanımlayıcının beklendiğini söylüyor.

Bu konuda oldukça yeni olduğumu söylediğim gibi, bu sorunu nasıl düzeltebileceğime dair herhangi bir girdi veya düşüncelere değer veriyorum. Bununla birlikte, lütfen bu kadar basit (ya da en azından basit bir şekilde açıklanmış) kalmaya çalışın, böylece umarım anlayabiliyorum!

Teşekkürler çocuklar!

+0

Lütfen etiketi kullanılmakta olan programlama dili olarak ekleyin –

+0

OP'yi Java kullanmıyorken yukarıdaki çalışmaların Java'da nasıl onaylandığını (bunun nasıl göründüğünü) teyit ederim. "Kitaplar" da bir koleksiyon olmadıkça, deyimsel olarak tekil bir isim çoğul isim vermemelisiniz ...Sadece bir FYI – echen

+0

gibi Java'yı NetBeans ile kullanıyorum. Belki de tüm kodlarımı postalamalıyım. Bu belki yardımcı olur mu? – Natecurt3030

cevap

0

Bu, kullandığınız ArrayList sınıfının toArray() yönteminin bildirimidir. gösterildiği gibi

public<T> T[] toArray(T[] a) 

Bu dönüş Kitaplar dizisi ve sen değil yani bookslist

üçüncü satırda değişiklik yapın geçti değişkeninde saklayın bu yöntemin çağrılması, sizin durumunuzda demektir aşağıdaki yöntem dizisi döndürür ve

ArrayList <Books> list = new ArrayList <Books>(); 
Books[] bookslist = new Books[list.size()]; 
bookslist = list.toArray(bookslist); 
(değişken bookslist yılında, senin durumunda) bir yere saklayın gerekir çünkü

Ancak, ArrayList için başka bir aşırı toArray yöntemi var. Beyan aşağıdaki gibidir.

public Object[] toArray() 

Bu list.toArray() çağırırsanız, o ikisi arasındaki fark ne Kitaplar []

Isteyebiliriz tip bir Object, döner ve kullanışındaki anlamına gelir. Eh, parametrized sürümü kodunuz üzerinde daha fazla kontrol sahibi olmanızı sağlar. Örneğin,

. Eğer intList.toArray() ararsanız

Eğer

ArrayList<Integer> intList = new ArrayList<Integer>(); 

varsa, bu intList.toArray(new Long[intList.size]()) ararsanız Tamsayı [] Ama, o zaman Uzun []

+0

Bu kodu kullanarak: Sembol kitap listesi bulunamıyor. Ayrıca, hala bir tanımlayıcı sorunu. Ben yanlış bir şey mi yaptım? Ayrıca, her iki kitap listesini (koyduğunuz gibi) ve kitap listelerini de denedim (Sizin düşündüğünüzü kastediyorum). – Natecurt3030

+0

bookslist değişkeni toArray() yöntemini çağırdığınız yere göre aynı kapsamda bildirildi mi? Belki bir döngüde kitap listesi bildiriyorsunuz veya döngü dışında –

+0

dışında toArray yöntemini engelleyip çağırıyorsanız, dürüst olmak gerekirse, kitap listesi değişkeninin yalnızca bahsini paylaştığım kodda bulabilirsiniz. Belki de kodun tam bir görünüşü, neyin olabileceğinden daha iyi olduğunu açıklayabilir. İşte kodun bir macunu: http://pastebin.com/AaNXCw7A – Natecurt3030

0

ben yönetilen dönecektir dönecektir sorunlarımı düzeltmek için. Aşağıdaki satırları findButton yöntemime taşıdım.

Books[] bookslist = new Books[list.size()]; 
    list.toArray(bookslist); 

    int referenceNum = Integer.parseInt(inputField.getText()); 

list.toArray (bookslist); Bir yöntemin dışında işlev olmaz. Böylece bu sorunlarımı mükemmel bir şekilde çözdü. Yardımınız için teşekkürler!

İlgili konular