इस लेख में, हम समझेंगे कि लिस्ट में एलिमेंट्स को कैसे रिप्लेस करें। List इंटरफेस Collection को एक्सटेंड करता है और एलिमेंट्स के अनुक्रम को स्टोर करने वाले संग्रह के व्यवहार की घोषणा करता है।
Collection एक फ्रेमवर्क है जो ऑब्जेक्ट्स के समूह को स्टोर और मैनिपुलेट करने के लिए आर्किटेक्चर प्रदान करता है। Java Collections वे सभी ऑपरेशन्स प्राप्त कर सकते हैं जो आप डेटा पर करते हैं जैसे खोज, सॉर्टिंग, इंसर्शन, मैनिपुलेशन, और डिलीशन।
नीचे इसका प्रदर्शन है:
मान लीजिए हमारा इनपुट है:
इनपुट लिस्ट: [Java, Scala, Mysql, Redshift]
वांछित आउटपुट होगा:
लिस्ट के एक एलिमेंट को रिप्लेस करने के बाद: [Java, Scala, Python, Redshift]
एल्गोरिदम
चरण 1 - शुरू चरण 2 - एक लिस्ट घोषित करें जिसका नाम input_list हो चरण 3 - मान परिभाषित करें चरण 4 - अपडेट किए जाने वाले इंडेक्स और जोड़ने वाली स्ट्रिंग को पैरामीटर के रूप में पास करके .set() फंक्शन का उपयोग करें चरण 5 - परिणाम के रूप में लिस्ट प्रदर्शित करें चरण 6 - रुकें
उदाहरण 1
यहाँ, हम सभी ऑपरेशन्स को 'main' फंक्शन के तहत बांधते हैं।
import java.util.*;
public class Demo {
public static void main(String[] args) {
System.out.println("आवश्यक पैकेज आयात किए गए हैं");
try {
ArrayList input_list = new ArrayList<>();
input_list.add("Java");
input_list.add("Scala");
input_list.add("Mysql");
input_list.add("Redshift");
System.out.println("लिस्ट परिभाषित है: " + input_list);
input_list.set(2, "Python");
System.out.println("\nलिस्ट के एक एलिमेंट को रिप्लेस करने के बाद: " + input_list);
} catch (Exception e) {
System.out.println(e);
}
}
}
आउटपुट
आवश्यक पैकेज आयात किए गए हैं लिस्ट परिभाषित है: [Java, Scala, Mysql, Redshift] लिस्ट के एक एलिमेंट को रिप्लेस करने के बाद: [Java, Scala, Python, Redshift]
उदाहरण 2
यहाँ, हम ऑपरेशन्स को फंक्शन्स में एनकैप्सुलेट करते हैं जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग प्रदर्शित करते हैं।
import java.util.*;
public class Demo {
public static void main(String[] args) {
System.out.println("आवश्यक पैकेज आयात किए गए हैं");
try {
ArrayList input_list = new ArrayList<>();
input_list.add("Java");
input_list.add("Scala");
input_list.add("Mysql");
input_list.add("Redshift");
System.out.println("लिस्ट परिभाषित है: " + input_list);
input_list.set(2, "Python");
System.out.println("\nलिस्ट के एक एलिमेंट को रिप्लेस करने के बाद: " + input_list);
} catch (Exception e) {
System.out.println(e);
}
}
}
आउटपुट
आवश्यक पैकेज आयात किए गए हैं लिस्ट परिभाषित है: [Java, Scala, Mysql, Redshift] लिस्ट के एक एलिमेंट को रिप्लेस करने के बाद: [Java, Scala, Python, Redshift]
एलिमेंट रिप्लेस करने के तरीके
| तरीका | सिंटैक्स | विवरण | रिटर्न |
|---|---|---|---|
| set() | list.set(index, element) | निर्दिष्ट इंडेक्स पर एलिमेंट रिप्लेस करता है | पुराना एलिमेंट |
| remove + add | list.remove(index); list.add(index, element) | हटाता और जोड़ता है, कम कुशल | हटाया गया एलिमेंट |
| Stream.map() | list.stream().map(...).collect(toList()) | नई लिस्ट बनाता है, फंक्शनल | नई लिस्ट |
| replaceAll (Java 8+) | list.replaceAll(e -> condition ? newVal : e) | शर्त के आधार पर सभी मैचिंग रिप्लेस | void |
| ListIterator.set() | iterator.set(element) | इटरेशन के दौरान रिप्लेस | void |
उन्नत रिप्लेसमेंट उदाहरण
Listlist = new ArrayList<>(Arrays.asList("Java", "Scala", "Mysql", "Redshift")); // 1. शर्त के आधार पर सभी घटनाओं को रिप्लेस करें (Java 8+) list.replaceAll(s -> s.equals("Mysql") ? "Python" : s); // परिणाम: [Java, Scala, Python, Redshift] // 2. एकाधिक रिप्लेसमेंट्स Map replacements = Map.of( "Java", "Java 17", "Scala", "Scala 3", "Mysql", "PostgreSQL" ); list.replaceAll(s -> replacements.getOrDefault(s, s)); // 3. ListIterator के साथ इटरेशन के दौरान रिप्लेस ListIterator it = list.listIterator(); while (it.hasNext()) { String current = it.next(); if (current.startsWith("J")) { it.set(current + " Language"); } } // 4. Stream के साथ सशर्त रिप्लेसमेंट (नई लिस्ट) List newList = list.stream() .map(s -> s.length() > 4 ? s.toUpperCase() : s) .collect(Collectors.toList()); // 5. इंडेक्स रेंज रिप्लेसमेंट List sublist = list.subList(1, 3); Collections.fill(sublist, "Replaced");
सामान्य त्रुटियां और सर्वोत्तम अभ्यास
- IndexOutOfBoundsException: हमेशा set() से पहले इंडेक्स वैलिडेट करें:
if (index >= 0 && index < list.size()) - Null एलिमेंट्स: ArrayList nulls की अनुमति देता है, लेकिन सावधानी से उपयोग करें
- अपरिवर्तनीय लिस्ट्स: List.of(), Collections.unmodifiableList() पर set() अनसपोर्टेड ऑपरेशन फेंकता है
- कॉन्करेंट मॉडिफिकेशन: इटरेशन के दौरान set() ठीक है, लेकिन add/remove नहीं
- प्रदर्शन: ArrayList.set() O(1), LinkedList.set() O(n)
रिकॉर्ड/POJO के साथ उपयोग
record Person(String name, int age) {}
List people = new ArrayList<>(List.of(
new Person("Alice", 25),
new Person("Bob", 30)
));
// रिकॉर्ड अपरिवर्तनीय हैं - नया इंस्टेंस बनाएं
people.set(0, new Person("Alice", 26)); // उम्र अपडेट की गई
// या mutable क्लास के साथ
class MutablePerson {
String name; int age;
// setters...
}