एंड्रॉइड में ArrayList से डुप्लिकेट ढूंढना
यह ट्यूटोरियल HashSet का उपयोग करके ArrayList में डुप्लिकेट स्ट्रिंग्स ढूंढने और उन्हें अलग सूची में संग्रहीत करने का तरीका दिखाता है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें।
चरण 2: लेआउट फ़ाइल (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
चरण 3: MainActivity.java
package com.example.duplicatesdemo;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
public class MainActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
// सैंपल डेटा जिसमें डुप्लिकेट हैं
ArrayList<String> mainList = new ArrayList<>();
mainList.add("साई");
mainList.add("साई"); // डुप्लिकेट
mainList.add("राम");
mainList.add("साई कृष्णा");
mainList.add("साई राम कृष्णा");
mainList.add("ट्यूटोरियलपॉइंट.कॉम");
mainList.add("ट्यूटोरियलपॉइंट.कॉम"); // डुप्लिकेट
// डुप्लिकेट ढूंढने के लिए HashSet का उपयोग
Set<String> seen = new HashSet<>();
ArrayList<String> duplicates = new ArrayList<>();
for (String item : mainList) {
// add() false लौटाता है यदि तत्व पहले से मौजूद है
if (!seen.add(item)) {
duplicates.add(item);
}
}
// परिणाम प्रदर्शित करें
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this, android.R.layout.simple_list_item_1, duplicates);
listView.setAdapter(adapter);
}
}
एल्गोरिदम समझाया गया
- HashSet अद्वितीय तत्वों को संग्रहीत करता है (कोई डुप्लिकेट नहीं)
add()trueलौटाता है यदि तत्व नया था,falseयदि पहले से मौजूद था- जब
add()false लौटाता है, तो हम जानते हैं कि यह डुप्लिकेट है - डुप्लिकेट को अलग
duplicatesसूची में जोड़ें - समय जटिलता: O(n) - कुशल!
ऐप चलाएं
ऐप लॉन्च करें। ListView केवल डुप्लिकेट मान दिखाएगा: "साई" और "ट्यूटोरियलपॉइंट.कॉम"।
नोट: यह दृष्टिकोण प्रत्येक डुप्लिकेट मान को केवल एक बार सूचीबद्ध करता है, चाहे वह कितनी बार भी दोहराया गया हो।