Bu yinelemeli BubbleSort algoritmasını lwjgl üzerinde çalışan oyunuma ekledim. Bu bulutun hızı olan bir kayan nokta tarafından bir "ArrayList" "Bulut" nesnesini sıralamaya çalışıyorum.BubbleSort StackOverflowError
Bazı nedenlerden dolayı bazen kendi içinde bir yöntemi "java.lang.StackOverflowError" alıyorum. İşte
kod:public void sort() {
for (int i = 0; i < clouds.size() - 1; i++) {
Cloud cl1 = clouds.get(i);
Cloud cl2 = clouds.get(i + 1);
if (cl1.getSpeed() < cl2.getSpeed()) {
continue;
}
clouds.set(i, cl2);
clouds.set(i+1, cl1);
this.sort();
}
}
Ve burada hatalar alıyorum gibidir:
Sat May 04 20:28:45 CEST 2013 ERROR:null
java.lang.StackOverflowError
at backgrounds.Clouds.sort(Clouds.java:224)
[...] // The line above is repeated for some hundred times.
Bulut sınıfınızda karşılaştırılabilir bir uygulama yapmanızı öneririm, size (.size) görünen bulutları tutmak için bir koleksiyon kullanıyorsunuzdur, bu yüzden Collections.sort() sizin için önemli olacaktır. Kendi yöntemlerini icat olsa da eğlencelidir;) – arynaq