संच म्हणजे फक्त अद्वितीय वस्तूंचा संग्रह. अद्वितीय म्हणजे कोणत्याही दोन वस्तूंचे मूल्य समान असू शकत नाही. सेटच्या अंमलबजावणीवर अवलंबून, ते ऑर्डर केले जाऊ शकते किंवा नाही. Abstract Data Type (ADT) म्हणून Java सेटमध्ये काही प्रमुख ऑपरेशन्स आहेत (जेथे T कोणताही डेटा प्रकार दर्शवतो उदा. int, String किंवा कोणत्याही क्लास ऑब्जेक्ट):

boolean add(T item)
: आयटम सेटमध्ये यशस्वीरीत्या जोडल्यास सत्य मिळवते आणि आयटम आधीपासून सेटमध्ये असल्यास असत्य मिळवते.boolean remove(T item)
: आयटम सेटमधून यशस्वीरित्या काढून टाकल्यास सत्य आणि अन्यथा खोटे (आयटम सेटमध्ये नसल्यास) मिळवते.boolean contains(T item)
: आयटम सेटमध्ये असल्यास सत्य आणि अन्यथा असत्य मिळवते.boolean isEmpty()
: संच रिकामा असल्यास सत्य आणि अन्यथा असत्य मिळवते.
contains()
यासाठी उत्तम रनटाइम देते: O(1) किंवा O(log n) वेळेची जटिलता वापरलेली अंमलबजावणी a HashSet
किंवा a आहे यावर अवलंबूनTreeSet
, अनुक्रमे. तर संच कशासाठी वापरला जाऊ शकतो? बरं, तुम्हाला अनेक वेगळ्या वस्तूंचा मागोवा ठेवण्याची आवश्यकता असल्यास--जसे की आयडी, नावे किंवा इतर अद्वितीय अभिज्ञापक--आणि अशा संग्रहात एखादी वस्तू अस्तित्वात आहे का ते वारंवार तपासा, तर संच ही एक चांगली निवड आहे. येथे एका संचाच्या वापराचे उदाहरण आहे: कल्पना करा की तुमच्याकडे Student
दिलेल्या वर्गातील सर्व विद्यार्थ्यांचे प्रतिनिधित्व करणाऱ्या वस्तूंची सूची आहे. Student
या वर्गासाठी प्रत्येकाचे वेगळे नाव (स्ट्रिंग) आणि ग्रेड (इंट) असू शकते. जर तुम्हाला सर्व A विद्यार्थ्यांची यादी (ग्रेड >=90) वारंवार पहायची असेल, तर ही यादी लूप करणे आणि प्रत्येक वेळी प्रत्येक विद्यार्थ्याचे ग्रेड तपासणे कंटाळवाणे होईल. त्याऐवजी, तुम्ही HashSet
स्ट्रिंगचा वापर करू शकता जे वर्गातील सर्व A विद्यार्थ्यांचा मागोवा ठेवते, जसे की:
- प्रत्येक वेळी विद्यार्थ्याचे ग्रेड अपडेट केले जातात तेव्हा, तुम्ही फक्त विद्यार्थ्याचा नवीन ग्रेड 90 पेक्षा मोठा आहे की नाही हे तपासू शकता.
- तसे असल्यास, त्यांना वापरून A विद्यार्थ्यांच्या संचामध्ये जोडा
add()
- जर ते आधीच ए विद्यार्थी असतील तर या ऑपरेशनकडे दुर्लक्ष केले जाईल.
- नसल्यास, त्यांना A वापरून विद्यार्थ्यांच्या संचातून काढून टाका
remove()
- जर ते यावेळी A विद्यार्थी नसतील तर या ऑपरेशनकडे दुर्लक्ष केले जाईल.
- तसे असल्यास, त्यांना वापरून A विद्यार्थ्यांच्या संचामध्ये जोडा
contains(“Johnny Appleseed”)
सेटवर कॉल करून ते सहज करू शकता. अर्थात, हे एका संचाच्या वापराच्या केसचे फक्त एक उदाहरण आहे आणि A विद्यार्थ्यांचा मागोवा ठेवण्याची ही विशिष्ट समस्या इतर मार्गांनी सोडवली जाऊ शकते.
अंमलबजावणी: Java मधील हॅशसेट आणि Java TreeSet उदाहरणे
HashSet
Java मध्ये आणि Java मध्ये दोन्ही TreeSet
येतात java.utils package
. आपण त्यांना याप्रमाणे आयात करू शकता:
// imports everything from Java's util package, including HashSet and TreeSet
import java.util.*;
किंवा
import java.util.HashSet; // imports only the Java HashSet
import java.util.TreeSet; // imports only the Java TreeSet
Java HashSet
आणि Java मधील मुख्य फरक TreeSet
म्हणजे TreeSet
क्रमवारी लावलेली आहे, तर HashSet
नाही. म्हणूनच की TreeSet
ऑपरेशन्ससाठी O(log n) वेळ जटिलता आहे, तर HashSet
O(1) किंवा स्थिर वेळ जटिलता आहे; TreeSet
नेहमी सुव्यवस्था राखली पाहिजे . आधी नमूद केलेल्या की सेट ऑपरेशन्स व्यतिरिक्त, Java HashSet
आणि TreeSet
दोन्हीमध्ये काही इतर उपयुक्त कार्ये आहेत:
void clear()
: सर्व वस्तूंचा संच साफ करते.int size()
: सेटमधील ऑब्जेक्ट्सची संख्या मिळवते.Object clone()
: सेटची उथळ प्रत परत करते.Iterator iterator()
: पहिल्या ऑब्जेक्टपासून सुरू होऊन सेटवर एक पुनरावृत्ती करणारा परत करतो.
size()
तुमच्याकडे किती 'A' विद्यार्थी आहेत हे पाहायचे असल्यास किंवा clear()
सेमिस्टरच्या शेवटी यादी साफ करायची असल्यास तुम्ही कॉल करू शकता. clone()
तुम्ही ठराविक वेळी A विद्यार्थ्यांच्या यादीचा क्लोन तयार करण्यासाठी आणि ठेवण्यासाठी वापरू शकता, जसे की मध्यावधी अहवालांदरम्यान (अशा प्रकारे क्लोन मूळ अहवालासह अद्ययावत राहत नाही) .
Java HashSet उदाहरण
Java मध्ये वापरल्या जाणार्या sHashSet
चे एक लहान उदाहरण येथे आहे :String
import java.util.HashSet;
class HashSetDemo {
public static void main(String[] args)
{
// create a HashSet of Strings
HashSet<String> hs = new HashSet<String>();
// Add elements using the add() method
hs.add("Collin");
hs.add("Bob");
hs.add("Abigail");
// Duplicates will ignored; this statement is useless
hs.add("Collin");
System.out.println(hs);
System.out.println("Bob is in the set (T/F): " + hs.contains("Bob"));
System.out.println("Max is in the set (T/F): " + hs.contains("Max"));
}
}
आउटपुट: --------
[Collin, Bob, Abigail]
Bob is in the set (T/F): true
Max is in the set (T/F): false
Java TreeSet उदाहरण
जावा सेट उदाहरण तुम्हाला सिद्धांत समजण्यास मदत करू शकते. Java मध्ये वापरल्या जाणार्या sTreeSet
चे छोटे उदाहरण येथे आहे :String
import java.util.TreeSet;
class TreeSetDemo {
public static void main(String[] args)
{
// create a TreeSet of Strings
TreeSet<String> ts = new TreeSet<String>();
// Add elements using the add() method.
ts.add("Collin");
ts.add("Bob");
ts.add("Abigail");
// Duplicates will ignored; this statement is useless
ts.add("Collin");
// printing the set prints the names in alphabetical order!
System.out.println(ts);
System.out.println("Bob is in the set (T/F): " + ts.contains("Bob"));
System.out.println("Max is in the set (T/F): " + ts.contains("Max"));
System.out.println("Size of the set: " + ts.size());
ts.clear();
System.out.println("Size of the set after clear(): " + ts.size());
}
}
आउटपुट: -------
[Abigail, Bob, Collin]
Bob is in the set (T/F): true
Max is in the set (T/F): false
Size of the set: 3
Size of the set after clear(): 0
इतकंच! आशा आहे की याने मदत केली 😊
GO TO FULL VERSION