我是問在接受採訪時的Java問題:爲什麼這兩個列表不相等?
List a = new ArrayList();
a.add(a);
List b = new ArrayList();
b.add(b);
if (a.equals(b)) {
System.out.println("equal");
} else {
System.out.println("non-equal");
}
爲什麼結果是「非平等」?謝謝!
在它的當前形式中,您的代碼不會導致「不等於」。它導致一個'StackOverflowException'。爲什麼?現在這將是一個很好的面試問題。 :) – sstan
它應該是'b.add(b)'或'a.add(b)'?在實際的採訪中,它是什麼?因爲如果面試官說正確的輸出是「不相等的」,那麼它不是一個錯字,你不需要編輯這個問題 - 在這種情況下Emd4600有正確的答案。如果面試官只是說「這裏有什麼結果?」它*是* b.add(b)',那麼這是一個詭計的問題,Andreas有正確的答案。 – OhBeWise