📘 Module 10: Java Collections Framework (JCF)
📘 Set Interface in Java
🔷 1. Set क्या है?
Setएक ऐसा collection है जो duplicate elements को allow नहीं करता, यानी हर element unique होना चाहिए।
➡️ और unlike List, Set में elements की position/index नहीं होती।
🔍 Set का Use कहाँ होता है?
| Situation | Example |
|---|---|
| Unique values चाहिए | जैसे – student roll numbers, email IDs |
| Fast lookup चाहिए | जैसे – किसी चीज़ का exist करना check करना |
✅ 2. Set के मुख्य Implementations
| Class Name | Description |
|---|---|
HashSet | Fastest, no order guarantee |
LinkedHashSet | Insertion order preserved |
TreeSet | Sorted elements (ascending by default) |
📘 Text-Based Set Hierarchy
Set (Interface)
↓
┌────────────┬──────────────┐
HashSet LinkedHashSet TreeSet
(Fast) (Insertion Order) (Sorted Set)
✅ 3. HashSet Example (Most Common)
import java.util.*;
public class HashSetDemo {
public static void main(String[] args) {
Set<String> fruits = new HashSet<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Apple"); // Duplicate
System.out.println(fruits); // Unordered, no duplicates
}
}
➡️ Output में "Apple" एक बार ही आएगा।
✅ 4. LinkedHashSet Example (Order preserved)
Set<String> cities = new LinkedHashSet<>();
cities.add("Delhi");
cities.add("Mumbai");
cities.add("Chennai");
System.out.println(cities); // [Delhi, Mumbai, Chennai]
➡️ Elements उसी order में रहेंगे जिस order में add किए गए।
✅ 5. TreeSet Example (Sorted Set)
Set<Integer> numbers = new TreeSet<>();
numbers.add(5);
numbers.add(2);
numbers.add(8);
System.out.println(numbers); // [2, 5, 8]
➡️ TreeSet elements को ascending order में automatically sort कर देता है।
✅ 6. Common Set Methods
| Method | Description |
|---|---|
add(E) | Element जोड़ना |
remove(E) | Element हटाना |
contains(E) | मौजूद है या नहीं |
size() | कितने elements हैं |
clear() | Set को खाली करना |
isEmpty() | खाली है या नहीं |
🔁 Iterating over a Set
Set<String> names = new HashSet<>();
names.add("A");
names.add("B");
for (String name : names) {
System.out.println(name);
}
या
Iterator<String> it = names.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
📊 Comparison Table:
| Feature | HashSet | LinkedHashSet | TreeSet |
|---|---|---|---|
| Duplicate Allowed? | ❌ No | ❌ No | ❌ No |
| Order Maintained? | ❌ No | ✅ Insertion order | ✅ Sorted |
| Null Allowed? | ✅ One | ✅ One | ❌ Not allowed |
| Performance | Fastest | Medium | Slowest |
🧪 Practice Assignments:
HashSet<String>में 5 student names add कीजिए, दो बार वही नाम add कर के देखिएLinkedHashSet<Integer>में 10 नंबर add कीजिए और उनकी order को print कीजिएTreeSet<Integer>में random numbers add कीजिए और output को ascending order में देखिए- एक Set में user से input लेकर duplicates को automatically हटाइए
🧠 Interview Questions:
- Set और List में क्या फ़र्क है?
- HashSet और TreeSet में कौन तेज़ है और क्यों?
- क्या Set null allow करता है?
- TreeSet sorting कैसे करता है?
Comments