क्या हम उसी hashcodeके बारे में पता लगा सकते हैं, listजिसमें खुद भी शामिल है element?
मुझे पता है कि यह एक बुरा अभ्यास है, लेकिन यह साक्षात्कारकर्ता ने पूछा है।
जब मैंने निम्नलिखित कोड चलाया तो यह फेंकता है StackOverflowError:
public class Main {
public static void main(String args[]) {
ArrayList<ArrayList> a = new ArrayList();
a.add(a);
a.hashCode();
}
}
अब यहाँ मेरे दो सवाल हैं:
- क्यों है एक
StackOverflowError? - क्या इस तरह से हैश कोड ढूंढना संभव है?
Listइंटरफ़ेस की बहुत परिभाषा से , hashCodeएक सूची का सदस्य इसके सदस्यों पर निर्भर करता है। यह देखते हुए कि सूची का अपना सदस्य है, यह हैश कोड है hashCode, जो इस पर निर्भर करता है hashCode... और इसी तरह, अनंत पुनरावृत्ति और StackOverflowErrorआप में चल रहे हैं। अब सवाल यह है: आपको खुद को शामिल करने के लिए एक सूची की आवश्यकता क्यों है? मैं आपको गारंटी दे सकता हूं कि आप इस तरह से पुनरावर्ती सदस्यता की आवश्यकता के बिना, जो कुछ भी आप कर रहे हैं, वह बेहतर तरीके से प्राप्त कर सकते हैं।