Biz bulabilir hashcodea listkendisini içerdiğini element?
Bunun kötü bir uygulama olduğunu biliyorum, ama görüşmeci bunu sordu.
Aşağıdaki kodu koştu zaman atar StackOverflowError:
public class Main {
public static void main(String args[]) {
ArrayList<ArrayList> a = new ArrayList();
a.add(a);
a.hashCode();
}
}
Şimdi burada iki sorum var:
- Neden bir
StackOverflowError? - Karma kodunu bu şekilde bulmak mümkün müdür?
Listarayüzün tanımıyla hashCode, bir listenin üyelerine bağlı olduğu mümkün değildir . Listenin kendi üyesi olduğu göz önüne alındığında, karma kodu hashCode, kendisine bağlıdır, bu da ona bağlıdır hashCode... vb StackOverflowError. Şimdi soru şudur: Neden bir listenin kendisini içermesini istersiniz? Böyle bir özyinelemeye gerek kalmadan daha iyi bir şekilde yapmaya çalıştığınız her şeyi başarabileceğinizi garanti edebilirim.