اگر آپ کو جاوا پروگرام میں ڈکشنری بنانے کی ضرورت ہے، تو اس مسئلے کو حل کرنے کا سب سے منطقی طریقہ ڈکشنری ڈیٹا سٹرکچر کو استعمال کرنا ہے۔ یہ ڈیٹا ڈھانچہ آپ کو معلومات کو "کلید - قدر" کی شکل میں ذخیرہ کرنے کی اجازت دیتا ہے۔ Java میں ایک خاص ڈکشنری کلاس کے ساتھ ساتھ اس کی نسل، Hashtable ہے ۔ اس کے علاوہ میپ انٹرفیس اور ہیش میپ کلاس ہے ، جو "کی - ویلیو" کے جوڑوں کو بھی اسٹور کرتی ہے۔ تو جاوا ڈکشنری بنانے کے بہت سے طریقے ہیں۔
ڈکشنری ڈیٹا کا ڈھانچہ
لہذا، ڈکشنری ڈیٹا ڈھانچہ معلومات کو کلیدی قدر کے مجموعہ کے طور پر ذخیرہ کرتا ہے۔ یعنی کسی بھی قدر کے ساتھ ہم ایک کلید کو جوڑتے ہیں (یہ ہو سکتا ہے، مثال کے طور پر، id) اور اس جوڑے کو لغت میں داخل کرتے ہیں۔ لغت کے کسی عنصر کو مخاطب کرنا، حذف کرنا، لغت میں تلاش کرنا کلید کے ذریعے انجام دیا جاتا ہے۔ اس طرح کے ڈیٹا ڈھانچے کا استعمال کرتے ہوئے ترتیب دینا آسان معلوم ہوتا ہے، مثال کے طور پر، ایک ٹیلی فون بک، جہاں نام (کلید) فون نمبر (قدر) سے مطابقت رکھتا ہے۔لغت کی کلاس اور اس کی توسیع
شروع کرنے کے لیے، java.util.Dictionary <K, V> util.Dictionary ایک تجریدی کلاس ہے۔ یہ کلیدی قدر کے تعلق کی نمائندگی کرتا ہے اور نقشے کی طرح کام کرتا ہے۔ ایک کلید دے کر آپ اقدار کو ذخیرہ کر سکتے ہیں اور ضرورت پڑنے پر اس کی کلید کا استعمال کرتے ہوئے قدر کو واپس حاصل کر سکتے ہیں۔ اس طرح، یہ کلیدی قدر کے جوڑے کی فہرست ہے۔public abstract class Dictionary<K,V> extends Object
چونکہ یہ کلاس خلاصہ ہے، ہم اس کے ساتھ براہ راست کام نہیں کریں گے۔ ڈکشنری میں براہ راست چائلڈ کلاس ہیش ٹیبل ہے ۔ تو جاوا میں ڈکشنری بنانے کے لیے آپ استعمال کر سکتے ہیں Hashtable ۔ یہ کلاس ایک ہیش ٹیبل کو لاگو کرتی ہے، جو اقدار کی کلیدوں کا نقشہ بناتی ہے اور کسی بھی غیر null چیز کو کلید یا قدر کے طور پر استعمال کیا جا سکتا ہے۔ جاوا کے درجہ بندی میں ہیش ٹیبل ڈکشنری کو بڑھاتا ہے اور نقشہ کو نافذ کرتا ہے ۔ آئیے ایک مثال دیتے ہیں۔ ہم Hashtable پر مبنی ایک کلاسک ڈکشنری، ایک ٹیلی فون بک بنانے جا رہے ہیں ۔
Dictionary phoneBook = new Hashtable();
اگر ہم اس طرح لکھتے ہیں، تو ہمیں کچھ آپریشنز کے لیے ٹائپ کاسٹنگ کا اطلاق کرنا چاہیے۔ مثال کے طور پر، کلید نکالنے کے لیے۔
System.out.println(((Hashtable) phoneBook).keySet());
اس سے بچنے کے لیے ہم بدل سکتے ہیں۔
Dictionary phoneBook = new Hashtable ();
پر
Hashtable phoneBook = new Hashtable ();
ہماری مثال میں، وضاحت کے لیے، ہم پہلا آپشن چھوڑ دیں گے۔
import java.util.Dictionary;
import java.util.Hashtable;
public class DictionaryDemo {
public static void main(String[] args) {
Dictionary phoneBook = new Hashtable();
// put() method
phoneBook.put("Johnny Walker", "2178");
phoneBook.put("Andrew Arnold", "1298");
phoneBook.put("Ivy Briggs", "1877");
phoneBook.put("Ricky McBright", "2001");
//print out Hashtable out
System.out.println(phoneBook);
//let's get the value using the key
System.out.println(phoneBook.get("Ivy Briggs"));
//there's no such key in out Hashtable
System.out.println(phoneBook.get("Sol Frank"));
//Is there a record with the "Johnny Walker" key?
System.out.println(((Hashtable) phoneBook).containsKey("Johnny Walker"));
//all keys of the Hashtable
System.out.println(((Hashtable) phoneBook).keySet());
//values from Hashtable
System.out.println(((Hashtable) phoneBook).values());
//the quantity of records
System.out.println(phoneBook.size());
//removing one record
phoneBook.remove("Andrew Arnold");
System.out.println(phoneBook);
}
}
آؤٹ پٹ ہے:
{اینڈریو آرنلڈ=1298، جانی واکر=2178، رکی میک برائٹ=2001، آئیوی بریگز=1877} 1877 کالعدم درست =2178، رکی میک برائٹ=2001، آئیوی بریگز=1877}
HashMap بطور لغت
HashMap ، Hashtable کے برعکس، ڈکشنری کی براہ راست اولاد نہیں ہے ۔ تاہم، بہت سی خصوصیات کی وجہ سے، زیادہ تر معاملات میں HashMap کا استعمال کرتے ہوئے ڈکشنری بنانا بہتر ہے ۔ HashMap کلاس فعالیت میں Hashtable سے بہت ملتی جلتی ہے ۔ بنیادی فرق یہ ہے کہ Hashtable کے طریقے مطابقت پذیر ہیں، لیکن HashMap نہیں ہیں۔ ہیش ٹیبل میں مطابقت پذیری کوڈ کی کارکردگی کو کم کرتی ہے۔ اس کے علاوہ، HashMap کلاس، Hashtable کے برعکس ، null کو بطور کلید (ایک) اور null کے سیٹ کو بطور قدر استعمال کرنے کی اجازت دیتا ہے۔ ہمارے معاملے میں، پروگرام بالکل ویسا ہی نظر آئے گا جیسا کہ اوپر دی گئی مثال ہے۔ فرق صرف مجموعہ کی قسم میں ہے۔ تاہم، یہ زیادہ تر معاملات میں جاوا میں لغات کے ساتھ کام کرنے کا ترجیحی طریقہ ہے۔import java.util.HashMap;
import java.util.Map;
public class DictionaryDemo2 {
public static void main(String[] args) {
Map<String, String> phoneBook = new HashMap<String,String>();
phoneBook.put("Johnny Walker", "2178");
phoneBook.put("Andrew Arnold", "1298");
phoneBook.put("Ivy Briggs", "1877");
phoneBook.put("Ricky McBright", "2001");
System.out.println(phoneBook);
System.out.println(phoneBook.get("Johnny Walker"));
System.out.println(phoneBook.get("Ivy Briggs"));
System.out.println(phoneBook.get("Unknown Friend"));
System.out.println(phoneBook.containsKey("Johnny Walker"));
System.out.println(phoneBook.containsKey("Unknown Friend"));
System.out.println(phoneBook.keySet());
System.out.println(phoneBook.values());
System.out.println(phoneBook.size());
phoneBook.remove("Andrew Arnold");
System.out.println(phoneBook);
}
}
یہاں آؤٹ پٹ ہے:
اینڈریو آرنلڈ = 1298، آئیوی بریگز = 1877، رکی میک برائٹ = 2001، جانی واکر = 2178} 2178 1877 null true false [اینڈریو آرنلڈ، آئیوی بریگز، رکی میک برائٹ، جانی واکر] [1298، 2001، 2001، 417] آئیوی بریگز = 1877، رکی میک برائٹ = 2001، جانی واکر = 2178}
GO TO FULL VERSION