एंड्रॉइड में NavigableSet इंटरफेस का उपयोग करना
यह उदाहरण दर्शाता है कि NavigableSet (TreeSet द्वारा इम्प्लीमेंटेड) का उपयोग करके सॉर्टेड सेट में नेविगेशन ऑपरेशन कैसे करें।
चरण 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="रिफ्रेश" />
</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.NavigableSet;
import java.util.TreeSet;
public class MainActivity extends AppCompatActivity {
private EditText nameEditText;
private ListView listView;
private ArrayAdapter<String> arrayAdapter;
private ArrayList<String> arrayList;
private NavigableSet<String> navigableSet = new TreeSet<>(); // NavigableSet इंटरफेस
@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.save).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEditText.getText().toString().trim();
if (!name.isEmpty()) {
boolean added = navigableSet.add(name);
updateListView();
// NavigableSet फीचर्स डेमो
StringBuilder info = new StringBuilder();
info.append("जोड़ा गया: ").append(added ? "हाँ" : "नहीं (डुप्लीकेट)").append("\n");
info.append("पहला: ").append(navigableSet.first()).append("\n");
info.append("अंतिम: ").append(navigableSet.last()).append("\n");
info.append("आकार: ").append(navigableSet.size());
Toast.makeText(MainActivity.this, info.toString(), Toast.LENGTH_LONG).show();
} else {
nameEditText.setError("नाम दर्ज करें");
}
}
});
}
private void updateListView() {
arrayList.clear();
arrayList.addAll(navigableSet); // सॉर्टेड क्रम में
if (arrayAdapter == null) {
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(arrayAdapter);
} else {
arrayAdapter.notifyDataSetChanged();
}
}
}
NavigableSet के मुख्य मेथड्स (TreeSet में उपलब्ध)
| मेथड | विवरण |
|---|---|
first() | सबसे छोटा एलिमेंट |
last() | सबसे बड़ा एलिमेंट |
lower(E e) | दिए गए एलिमेंट से सख्ती से कम सबसे बड़ा |
floor(E e) | दिए गए एलिमेंट से कम या बराबर सबसे बड़ा |
higher(E e) | दिए गए एलिमेंट से सख्ती से बड़ा सबसे छोटा |
ceiling(E e) | दिए गए एलिमेंट से बड़ा या बराबर सबसे छोटा |
pollFirst() | पहला एलिमेंट हटाकर लौटाता है |
pollLast() | अंतिम एलिमेंट हटाकर लौटाता है |
सबसेट ऑपरेशन्स
NavigableSet<String> set = new TreeSet<>();
set.addAll(Arrays.asList("A", "B", "C", "D", "E", "F"));
// रेंज क्वेरी
set.subSet("B", true, "E", false); // [B, C, D] - B शामिल, E नहीं
set.headSet("D", true); // [A, B, C, D] - D तक
set.tailSet("C", false); // [D, E, F] - C के बाद
// डिसेंडिंग व्यू
NavigableSet<String> descending = set.descendingSet(); // [F, E, D, C, B, A]
NavigableSet<String> descendingView = set.descendingSet(); // बैक्ड व्यू
कब उपयोग करें
- सॉर्टेड डेटा में रेंज क्वेरी चाहिए
- प्रीडीसेसर/सक्सेसर खोजने हैं
- फ्लोर/सीलिंग ऑपरेशन्स चाहिए
- रिवर्स ऑर्डर इटरेशन चाहिए
ऐप चलाएं
नाम जोड़ें - वे अल्फाबेटिक क्रम में दिखेंगे। Toast में पहला/अंतिम एलिमेंट और साइज दिखेगा।
