السلام عليكم ورحمة الله وبركاته،
عندي استفسار عن التعامل مع HashMap class
هنا التوثيق الكامل له:
أبحث عن طريقة أستطيع من خلالها الحصول على ال key
عن طريق إدخال value معين
يعني أريد طريقة تقوم بعمل معاكس للfunction التي اسمها get
وشكراً مقدماً
:)
السلام عليكم،
بحثت كثيراً في الجافا..
كتبت هذا الكود :
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;
حتى الآن لا أعرف كيف أحل المشكلة..
أرجو أن يضيف أحد الخبراء لمساته الذهبية على الكود حتى يعمل بسلام :)
وجزاكم الله خيراً،
لا اعرف من لمح لك بهذه الطريقة الغبية ... و لكن سامحه الله!!
و اين نص الخطئ؟؟ المتعلق بالسطر
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
رامي العيساوي كتب:لا اعرف من لمح لك بهذه الطريقة الغبية ... و لكن سامحه الله!!و اين نص الخطئ؟؟ المتعلق بالسطر
أخي رامي،
لا أسمح لك بإهانة الشخص الذي أعطاني التلميح..
بالنسبة لرسالة الخطأ فهي هنا:
incompatible types found : java.util.Set required: java.util.Map.Entry Map.Entry e = set; ^
باوع علي زين!! الشخص ما قلك هيك تكتب ابدا على ما اظن هو قال لك ان تعمل كلاس جديد و مصفوفة جديدة تخزن فيها القيمتان و مهمة الكلاس وجود طرق بداخله لكي تاخذ القيم المتوفرة بداخل المصفوفة المذكورة... و لم يقل لك ان تعمل هذا الكود
انت لم تفهم الفكرة لذا انا اعتذر جدا جدا جدا للشخص الذي اعطاك التلميح و انا مستعد لاي طريقة لكي اعوضه و لم ادري ابدا بانه على درجة كبيرة من العلم
فعلا انا انحني غصبا عني امام هكذا خبرة كبيرة و لا اعرف كيف وصفت فكرته بالغبية و هذا غباء مني صراحة
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
هنا الكود بعد التصحيح
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)
لو استطعنا اقناعه بالانضمام للمنتدى و لقسم الجافا سيكون فائدة لا محدودة لنا و حلم كبير و تحقق لنا ... بس ما اظن يقبل؟؟
لانه تصور يشترك و من ثم ياتي احد الاعضاء و يوجه له اهانة او ايزعجه و من بعدها يطالب العضو باعتذار فوري من فوق ما هو مخطئ
لن يتحمل هكذا اشخاص و سوف يترك المنتدى فورا و كيف له ان يستحمل مئات المواضيع المخالفة و التي لا يتجرأ احد ان يغلقها لانه سوف ينهال عليه العضو بوابل من التوبيخ
بعد كلامي هذا اجد انه الحق معه بعدم الانضمام لهذا المنتدى فنحن لا نليق به فعلا
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
أخ علاء....
قبل أن تحصل على طريقة البحث المناسبة هل لي أن أسألك سؤالا؟
ما الذي تريد تخزينه في البداية؟ هل هذه معلومات للعملاء مثلا؟ ما وظيفة القاموس الذي تريد بناءه؟
هذه الأجوبة تساعدك على صنع الشيء بأفضل تصميم!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
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;
}
}مع ملاحظة أني لا أرى فائدة من هذه الطريقة في الغالب!
بالتوفيق!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
فعلا .. و لكن الدكتور على ما يبدو يحب يعمل حاله فيهم مثل دكتور الادارة مالتي :)
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
أنا لست مع رأي رامي...
ربما الأستاذ يريد اختبارهم في البرمجة بصفة عامة...
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
و هذا ليس بالاختبار الامثل!!!
انا اعتقد ان الدكتور مالتهم يعاني من مشكلة في الاستقطاب ولا ايه يا ابو مازن!! :)
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
رامي العيساوي كتب:لو استطعنا اقناعه بالانضمام للمنتدى و لقسم الجافا سيكون فائدة لا محدودة لنا و حلم كبير و تحقق لنا ... بس ما اظن يقبل؟؟لانه تصور يشترك و من ثم ياتي احد الاعضاء و يوجه له اهانة او ايزعجه و من بعدها يطالب العضو باعتذار فوري من فوق ما هو مخطئ
لن يتحمل هكذا اشخاص و سوف يترك المنتدى فورا و كيف له ان يستحمل مئات المواضيع المخالفة و التي لا يتجرأ احد ان يغلقها لانه سوف ينهال عليه العضو بوابل من التوبيخ
بعد كلامي هذا اجد انه الحق معه بعدم الانضمام لهذا المنتدى فنحن لا نليق به فعلا
: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.
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
هذا الموضوع مغلق.