ListView में न्यूमेरिक ऑर्डर में एलिमेंट्स स्टोर करना
यह उदाहरण दर्शाता है कि Android में ListView के लिए एलिमेंट्स को न्यूमेरिक ऑर्डर में कैसे स्टोर किया जाता है। Collections.max() केवल अधिकतम मान लौटाता है; सॉर्टिंग के लिए Collections.sort() का उपयोग करें।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project पर जाएं और प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल (res/layout/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"
tools:context=".MainActivity"
android:orientation="vertical">
<EditText android:id="@+id/name" android:layout_width="match_parent"
android:hint="नाम/संख्या दर्ज करें" android:layout_height="wrap_content" />
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button android:id="@+id/save" android:text="सेव करें"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:id="@+id/refresh" android:text="रिफ्रेश"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
<ListView android:id="@+id/listView" android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
चरण 3: MainActivity.java
package com.example.myapp;
import android.os.Bundle;
import androidx.appcompat.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.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
public class MainActivity extends AppCompatActivity {
EditText name;
ArrayAdapter<String> arrayAdapter;
ArrayList<String> arrayList;
Set<String> set = new HashSet<>();
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arrayList = new ArrayList<>();
name = findViewById(R.id.name);
listView = findViewById(R.id.listView);
findViewById(R.id.refresh).setOnClickListener(v -> {
if (arrayAdapter != null) {
arrayAdapter.notifyDataSetChanged();
listView.invalidateViews();
}
});
findViewById(R.id.save).setOnClickListener(v -> {
String input = name.getText().toString().trim();
if (!input.isEmpty()) {
set.add(input);
arrayList.clear();
arrayList.addAll(set);
// न्यूमेरिक सॉर्टिंग के लिए कस्टम Comparator
Collections.sort(arrayList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
try {
// संख्या के रूप में पार्स करके तुलना करें
double n1 = Double.parseDouble(o1);
double n2 = Double.parseDouble(o2);
return Double.compare(n1, n2);
} catch (NumberFormatException e) {
// गैर-संख्यात्मक स्ट्रिंग्स के लिए डिफ़ॉल्ट तुलना
return o1.compareTo(o2);
}
}
});
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(arrayAdapter);
Toast.makeText(this, "इन्सर्ट किया गया", Toast.LENGTH_LONG).show();
} else {
name.setError("मान दर्ज करें");
}
});
}
}
ऐप चलाएं
डिवाइस कनेक्ट करें और ऐप चलाएं।

परिणाम में, हम मान 4 इन्सर्ट कर रहे हैं और ListView उसे 5 और 3 के बीच न्यूमेरिक ऑर्डर में स्टोर कर रहा है। ध्यान दें: मूल कोड में Collections.max() केवल अधिकतम मान लौटाता था, सॉर्ट नहीं करता था।