क्या हम उसी 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
आप में चल रहे हैं। अब सवाल यह है: आपको खुद को शामिल करने के लिए एक सूची की आवश्यकता क्यों है? मैं आपको गारंटी दे सकता हूं कि आप इस तरह से पुनरावर्ती सदस्यता की आवश्यकता के बिना, जो कुछ भी आप कर रहे हैं, वह बेहतर तरीके से प्राप्त कर सकते हैं।