الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع HashMap

مغلق
بدأه علاء السلال في 1 يناير 2006 · 16 رد · 1,244 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته،

عندي استفسار عن التعامل مع HashMap class

هنا التوثيق الكامل له:

HashMap Documentation

أبحث عن طريقة أستطيع من خلالها الحصول على ال key

عن طريق إدخال value معين

يعني أريد طريقة تقوم بعمل معاكس للfunction التي اسمها get

وشكراً مقدماً

:)

اللهم طهر أرض فلسطين من العملاء والخونة

#2

السلام عليكم،

بحثت كثيراً في الجافا..

كتبت هذا الكود :

import java.util.*;
    
public class HashMapDemo
{

	private HashMap data;



	public HashMapDemo()
	{
  
  data = new HashMap(5);
	}

	public void test ( )
	{
	data.put ("100" , "ala");
	data.put("101" , "ahmad");
	data.put("102", "noor");
	data.put("103","moon");
	data.put("104","cat");
	}
	public String getKey ( String value )
	{
	Set set = data.entrySet();
    Map.Entry e = set;
	return e.getKey(value);
	}


}

عند الترجمة يظهر لي خطأ في هذا السطر:

 Map.Entry e = set;

حتى الآن لا أعرف كيف أحل المشكلة..

أرجو أن يضيف أحد الخبراء لمساته الذهبية على الكود حتى يعمل بسلام :)

وجزاكم الله خيراً،

اللهم طهر أرض فلسطين من العملاء والخونة

#3

لا اعرف من لمح لك بهذه الطريقة الغبية ... و لكن سامحه الله!!

و اين نص الخطئ؟؟ المتعلق بالسطر

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#4
رامي العيساوي كتب:
لا اعرف من لمح لك بهذه الطريقة الغبية ... و لكن سامحه الله!!

و اين نص الخطئ؟؟ المتعلق بالسطر

أخي رامي،

لا أسمح لك بإهانة الشخص الذي أعطاني التلميح..

بالنسبة لرسالة الخطأ فهي هنا:

incompatible types 
found : java.util.Set
required: java.util.Map.Entry
Map.Entry e = set;
^

اللهم طهر أرض فلسطين من العملاء والخونة

#5

باوع علي زين!! الشخص ما قلك هيك تكتب ابدا على ما اظن هو قال لك ان تعمل كلاس جديد و مصفوفة جديدة تخزن فيها القيمتان و مهمة الكلاس وجود طرق بداخله لكي تاخذ القيم المتوفرة بداخل المصفوفة المذكورة... و لم يقل لك ان تعمل هذا الكود

انت لم تفهم الفكرة لذا انا اعتذر جدا جدا جدا للشخص الذي اعطاك التلميح و انا مستعد لاي طريقة لكي اعوضه و لم ادري ابدا بانه على درجة كبيرة من العلم

فعلا انا انحني غصبا عني امام هكذا خبرة كبيرة و لا اعرف كيف وصفت فكرته بالغبية و هذا غباء مني صراحة

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#6

فعلاً،

هذا الشخص ذو خبرة كبيرة ومن الرائع أنه تمكنا من الحديث معه،

يا ريت لو يقبل الانضمام إلينا

حتى يتمكن الأعضاء من الاطلاع على فكره

:rolleyes:

اللهم طهر أرض فلسطين من العملاء والخونة

#7

هنا الكود بعد التصحيح

import java.util.*;
    
public class HashMapDemo
{

	private HashMap data;



	public HashMapDemo()
	{
  
  data = new HashMap(5);
	}

	public void test ( )
	{
	data.put ("100" , "ala");
	data.put("101" , "ahmad");
	data.put("102", "noor");
	data.put("103","moon");
	data.put("104","cat");
	}


	public String getKeyl ( String value )
	{ String re=" "; 
	Set set = data.entrySet();
	Iterator it = set.iterator ();
	while ( it.hasNext())
	{
     Map.Entry e = 
     (Map.Entry) it.next();
    String  k = (String) e.getKey();

     if ( value == data.get( k ))
	{ re = (String) e.getKey(); }
	}
	return  re;
	}





}

B)

اللهم طهر أرض فلسطين من العملاء والخونة

#8

لو استطعنا اقناعه بالانضمام للمنتدى و لقسم الجافا سيكون فائدة لا محدودة لنا و حلم كبير و تحقق لنا ... بس ما اظن يقبل؟؟

لانه تصور يشترك و من ثم ياتي احد الاعضاء و يوجه له اهانة او ايزعجه و من بعدها يطالب العضو باعتذار فوري من فوق ما هو مخطئ

لن يتحمل هكذا اشخاص و سوف يترك المنتدى فورا و كيف له ان يستحمل مئات المواضيع المخالفة و التي لا يتجرأ احد ان يغلقها لانه سوف ينهال عليه العضو بوابل من التوبيخ

بعد كلامي هذا اجد انه الحق معه بعدم الانضمام لهذا المنتدى فنحن لا نليق به فعلا

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#9

أخ علاء....

قبل أن تحصل على طريقة البحث المناسبة هل لي أن أسألك سؤالا؟

ما الذي تريد تخزينه في البداية؟ هل هذه معلومات للعملاء مثلا؟ ما وظيفة القاموس الذي تريد بناءه؟

هذه الأجوبة تساعدك على صنع الشيء بأفضل تصميم!

#10

أهلاً بك أخي أبو مازن،

في الحقيقة لا أريد بناء أي شيء،

كل ما هنالك أن هذ واجب جامعي ليس أكثر،

وتقبل الله طاعاتكم :)

اللهم طهر أرض فلسطين من العملاء والخونة

#11

1- اجعل الاختبار هو اختبار بين قيمة value وقيمة getValue.. أقصد بهذا أن تتم مقارنة القيمة باستعال equals وليس ==،، لكن هذا يعتمد على ما تريده.

2- انتبه للقيمة null فهي واردة.

3- اجعل نظامك يعمل على أي Map وليس بالضرورة HashMap،، انظر إلى الطريقة التالية فهي تعمل على HashMap أو TreeMap أو أي Map!!

package test;
import java.util.*;
public class Test{
	public static void main(String[]args){
  Map data=new HashMap();
  data.put ("100" , "ala");
  data.put("101" , "ahmad");
  data.put("102", "noor");
  data.put("103", null);
  data.put("104","moon");
  data.put("105","cat");
  data.put("106",null);
  data.put("107","hello");
  System.out.println (getKey(data, "noor"));
  System.out.println (getKey(data, null));
	}
	public static Object getKey (Map map,  Object value ){
  if(value==null)return getKeyWithNull(map);
  else return getKeyWithoutNull(map, value);
	}
	private static Object getKeyWithoutNull(Map map, Object value){
  Iterator t=map.entrySet().iterator();
  while(t.hasNext()){
 	 Map.Entry entry=(Map.Entry)t.next();
 	 if(entry.getValue()==null)continue;
 	 if(value.equals(entry.getValue()))return entry.getKey();
  }
  return null;
  
	}
	private static Object getKeyWithNull(Map map){
  Iterator t=map.entrySet().iterator();
  while(t.hasNext()){
 	 Map.Entry entry=(Map.Entry)t.next();
 	 if(entry.getValue()==null)return entry.getKey();
  }
  return null;
	}
}

مع ملاحظة أني لا أرى فائدة من هذه الطريقة في الغالب!

بالتوفيق!

#12

فعلا .. و لكن الدكتور على ما يبدو يحب يعمل حاله فيهم مثل دكتور الادارة مالتي :)

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#13

أنا لست مع رأي رامي...

ربما الأستاذ يريد اختبارهم في البرمجة بصفة عامة...

#14

و هذا ليس بالاختبار الامثل!!!

انا اعتقد ان الدكتور مالتهم يعاني من مشكلة في الاستقطاب ولا ايه يا ابو مازن!! :)

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#15
رامي العيساوي كتب:
لو استطعنا اقناعه بالانضمام للمنتدى و لقسم الجافا سيكون فائدة لا محدودة لنا و حلم كبير و تحقق لنا ... بس ما اظن يقبل؟؟

لانه تصور يشترك و من ثم ياتي احد الاعضاء و يوجه له اهانة او ايزعجه  و من بعدها يطالب العضو باعتذار فوري من فوق ما هو مخطئ

لن يتحمل هكذا اشخاص و سوف يترك المنتدى فورا و كيف له ان يستحمل مئات المواضيع المخالفة و التي لا يتجرأ احد ان يغلقها لانه سوف ينهال عليه العضو بوابل من التوبيخ

بعد كلامي هذا اجد انه الحق معه بعدم الانضمام لهذا المنتدى فنحن لا نليق به فعلا

:lol:

صحيح

Moore’s Law

– “Number of transistors in chips doubles every 18 
months”.
–  Every 10 years, processors are 100 times more 
powerful.

Gilder’s Law

– “Bandwidth grows at least three times faster than 
computer power”.
– Assuming bandwidth doubles every 12 months; 
every 10 years, it is 1000 times better.
#16

جزاكم الله كل الخير،

شكراً أخي أبو مازن على الكود الجميل :)

اللهم طهر أرض فلسطين من العملاء والخونة

#17

NUCLEAR

انت قلت صحيح!! طيب نحن على من نتحدث؟؟؟

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

هذا الموضوع مغلق.

مواضيع مشابهة