2016-04-12 22 views
1

Merhabalar Her seferinde yeni bir eleman eklemeye çalıştığımda dizideki her elemanın indeksini artırmaya çalışıyorum.Yeni bir eleman eklerken dizi içindeki tüm elemanların indeksini arttırmak

public void enqueue(Object inValue) 
{ 
    if(isFull()) 
    { 
     throw new IllegalArgumentException ("Full."); 
    } 
    else 
    { 
     queue[count] = inValue; 
     count += 1; 
    } 
} 

public static void main(String[] args) { 
    // creating queue 
    Queue q = new Queue(); 

    // adding items into queue 
    q.enqueue("1"); 
    q.enqueue("2"); 
    q.enqueue("3"); 
} 

bu q yol [0] = 1, q [1] = 2 ve q [2] = 3 ama aslında want i q.enqueue eklendikten sonra ("2") dizi şöyle olur: q [0] = 2, q [1] = 1 ve q.enqueue ("3") sonra dizi şöyle görünmelidir: q [0] = 3, q ​​[1] = 2, q [ 0] = 1.

Kötü ifade için gerçekten üzgünüm. Umarım benim problemimi anlayabilirsin. Birkaç saatliğine bunu denedim ama yine de tek bir ipucu bulamadım.

cevap

0

https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#arraycopy(java.lang.Object,%20int,%20java.lang.Object,%20int,%20int) arraycopy'i kullanarak boş bir dizi oluşturabilir ve [0] 'da yeni öğeyi diğerlerini kopyalamaya göre ekleyebilirsiniz. Bununla birlikte,

. İlk önce bunu gerçekten yapman gerekip gerekmediğini düşünmelisin. Senin problemin ne?

+0

Sorunum, yığın ve sıra sınıfı kullanarak ancak Java.util.stack ve kuyruğunu almayan postfix'e infix yapıyor. Kendim tarafından yığın ve sıra sınıfı oluşturmalıyım. Zaten yapmıştım, ama gönderdiğim soru olan kuyruğa sıkışmıştım. P.s, ilk önce ilk dışarıda ve sıra sınıfı önbellek işlenenleriyle ilk önceliği olan sınıf önbellek işleçlerini – charlie

0

Bir dizi yerine dahili bir listeyi kullanmanızı tavsiye ederim. Sonra yeni bir eleman eklediğinizde her öğeyi değiştirmek zorunda kalmazsınız. Ve bunun hiç bitmeyeceği konusunda endişelenmenize gerek yok (bellek tükenmesi nedeniyle).

İlgili konular