HashSet से डेटा हटाकर ListView में दिखाना
यह उदाहरण दर्शाता है कि HashSet (अनऑर्डर्ड, कोई डुप्लीकेट नहीं) से डेटा कैसे हटाएं और ListView में अपडेट करें।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में नया प्रोजेक्ट बनाएं।
चरण 2: activity_main.xml लेआउट
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="नाम दर्ज करें" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="सेव करें" />
<Button
android:id="@+id/refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="रिफ्रेश" />
<Button
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="हटाएं" />
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
चरण 3: MainActivity.java
package com.example.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
public class MainActivity extends AppCompatActivity {
private EditText nameEditText;
private ListView listView;
private ArrayAdapter<String> arrayAdapter;
private ArrayList<String> arrayList;
private Set<String> hashSet = new HashSet<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameEditText = findViewById(R.id.name);
listView = findViewById(R.id.listView);
arrayList = new ArrayList<>();
// रिफ्रेश बटन
findViewById(R.id.refresh).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (arrayAdapter != null) {
arrayAdapter.notifyDataSetChanged();
}
}
});
// हटाएं बटन
findViewById(R.id.delete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEditText.getText().toString().trim();
if (!name.isEmpty()) {
boolean removed = hashSet.remove(name);
updateListView();
Toast.makeText(MainActivity.this,
removed ? "हटा दिया गया" : "नहीं मिला",
Toast.LENGTH_SHORT).show();
} else {
nameEditText.setError("नाम दर्ज करें");
}
}
});
// सेव बटन
findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEditText.getText().toString().trim();
if (!name.isEmpty()) {
hashSet.add(name); // डुप्लीकेट अपने आप इग्नोर होंगे
updateListView();
Toast.makeText(MainActivity.this, "जोड़ दिया गया", Toast.LENGTH_SHORT).show();
} else {
nameEditText.setError("नाम दर्ज करें");
}
}
});
}
private void updateListView() {
arrayList.clear();
arrayList.addAll(hashSet); // क्रम अनिश्चित होगा (HashSet अनऑर्डर्ड है)
if (arrayAdapter == null) {
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(arrayAdapter);
} else {
arrayAdapter.notifyDataSetChanged();
}
}
}
HashSet की विशेषताएं
- कोई डुप्लीकेट नहीं - समान नाम दोबारा जोड़ने पर इग्नोर होगा
- कोई क्रम नहीं - इंसर्शन ऑर्डर बनाए नहीं रखता
- तेज़ परफॉरमेंस - add, remove, contains: O(1)
- नल मान अनुमत (एक null)
Set तुलना
| Set प्रकार | क्रम | डुप्लीकेट | नल अनुमत |
|---|---|---|---|
| HashSet | कोई नहीं | नहीं | हाँ (1) |
| LinkedHashSet | इंसर्शन ऑर्डर | नहीं | हाँ (1) |
| TreeSet | सॉर्टेड (नेचुरल) | नहीं | नहीं |
ऐप चलाएं
नाम जोड़ें (डुप्लीकेट नहीं जुड़ेंगे), फिर नाम डालकर हटाएं। ListView में क्रम रैंडम हो सकता है।

