2013-02-04 23 views
6

ओओपी जावा में एक कक्षा लेना और चूंकि मैं भाषा के लिए पूरी तरह से नया हूं और अभी तक कई उपकरणों से अनजान हूं, मुझे सरल चीजों के समाधान के लिए अंधेरे में फंसे हुए हैं, लेकिन मैं इन समस्याओं को हल कर सकता हूं लेकिन मैं महसूस करें कि java.util के साथ ऐसा करने के लिए बहुत आसान तरीके हैं।मैं एक दूसरे के खिलाफ तारों की दो सूचियों की जांच कैसे करूं?

मान लें मैं तार की एक सूची है

String[] stringOne = {"a","b","c", "potato"}; 
String[] stringTwo = {"potato", "13"}; 

मैं इसकी जांच कैसे कितनी बार stringTwo में किसी भी आइटम stringOne में होता हैं? या ठीक इसके विपरीत। जब भी मुझे यह समस्या हो, तो मैं डबल लूप नहीं करूंगा (या डबल-लूप विधि बना सकता हूं)।

अभी मैं Collections.frequency() का उपयोग कर दूर हूं और केवल एक बार लूपिंग कर रहा हूं लेकिन क्या कोई आसान तरीका है? धन्यवाद।

उत्तर

3

मान लें मैं तार

String[] stringOne = {"a","b","c", "potato"}; 
String[] stringTwo = {"potato", "13"}; 

ये "सरणियों", नहीं "सूची" कर रहे हैं की एक सूची है। Arrays.asList(stringOne)stringOne द्वारा संदर्भित सरणी के लिए एक सूची रैपर है।

मैं कैसे जांचूं कि स्ट्रिंग में किसी भी दिए गए आइटम को स्ट्रिंगऑन में कितनी बार होता है?

new HashSet(Arrays.asList(stringOne)).retainAll(Arrays.asList(stringTwo)) 

तुम दोनों में तत्वों के सेट दे देंगे।

एक सेट के बजाय Bag के साथ एक समान दृष्टिकोण आपको गिना जाएगा।

retainAll(Collection coll)

कि दिए गए संग्रह में नहीं हैं बैग के किसी भी सदस्य को निकालें, प्रमुखता का सम्मान। यही है, अगर दिए गए संग्रह कॉल में किसी दिए गए ऑब्जेक्ट की प्रतियां होती हैं और बैग में एम> एन प्रतियां होती हैं, तो बैग से एम-एन प्रतियां हटा दें। इसके अलावा, यदि ई बैग में एक वस्तु है लेकिन !coll.contains(e) है, तो e और इसकी किसी भी प्रति को हटा दें।

संग्रह कक्षाओं में इस्तेमाल तुल्यता की धारणा है कि कोषगत तुलना करने के लिए Object.equals(object) जो java.lang.String ओवरराइड द्वारा परिभाषित किया गया है।

यदि आपको किसी सरणी में परिणाम की आवश्यकता है, तो myBag.toArray(new String[0]) पर प्रयास करें जो सामग्री को स्ट्रिंग पर डंप करता है। तर्क दस्तावेज़ीकरण में समझाया गया है, लेकिन संक्षेप में, यह एक प्रकार का संकेत है जो जावा के टूटे सरणी भिन्नता के आसपास काम करता है।

+0

आह धन्यवाद, बहुत अधिक सुरुचिपूर्ण! – arynaq