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

لماذا لا استطيع الدوران حول HashMap بأستخدام foreach ؟؟؟؟

بدأه sameh mahmoud في 26 ديسمبر 2010 · 7 رد · 770 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الكود التالي يحاول الدوران حول hashmap

       HashMap<String , String> data =new HashMap<String, String>();
       String s ="Hello";
       data.put(s, new String("Hello world"));
       for(String dataS : data){

       }

و لكن النتيجة :

اقتباس

foreach not applicable to experssion type

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

#2

يمكنك حلّها بالطريقة التالية:

     HashMap<String, String> data = new HashMap<String, String>();
        String s = "Hello";
        data.put(s, new String("Hello world"));
        for (String dataS : data.keySet()) {
            System.out.println("Key:"+dataS);
            System.out.println("Value:"+data.get(dataS));
        }

هذه هي النقطة الرئيسية:

  for (String dataS : data.keySet())
#3
.S.T.A.L.K.E.R كتب:

يمكنك حلّها بالطريقة التالية:

     HashMap<String, String> data = new HashMap<String, String>();
        String s = "Hello";
        data.put(s, new String("Hello world"));
        for (String dataS : data.keySet()) {
            System.out.println("Key:"+dataS);
            System.out.println("Value:"+data.get(dataS));
        }

هذه هي النقطة الرئيسية:

  for (String dataS : data.keySet())

اشكرك على الرد

و لكن نستخدم ArrayList من الاول طالما اننا سنتعامل مع طرف واحد ’ هل توافقني الرأي ؟؟؟

و شكرا لك

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

#4

ذلك يعود لك و لبرنامجك اخ سامح

لكل شيء استخدامه

#5

[

sameh mahmoud كتب:

و لكن نستخدم ArrayList من الاول طالما اننا سنتعامل مع طرف واحد '

عزراً اخي الكريم,

ميزة ال hashmap عن ال arraylist تكمن في انك تخزن البيانات بمفتاح معين ويمكنك فيما بعد استدعاء البيانات المدخلة عن طريق هذا المفتاح

فمثلاً

لو قمنا بانشاء hashmap

HashMap<String, String> myMap= new HashMap<String,String>();

ثم اضفنا العنصر data بمفتاح key

String data="data";
String key="key";

myMap.put(key, data);

يمكننا فيما بعد استدعاء هذا العنصر بهذه الطريقة

myMap.get(key)

ارجو ان يكون الفرق واضح

تحياتي

تم تعديل هذه المشاركة بواسطة Mina Fouad في 28 ديسمبر 2010 في 00:32

--

Mina Fouad

Computer & Systems Engineering Dpt.

Faculty of Engineering

Alexandria University

#6
Mina Fouad كتب:

[

عزراً اخي الكريم,

ميزة ال hashmap عن ال arraylist تكمن في انك تخزن البيانات بمفتاح معين ويمكنك فيما بعد استدعاء البيانات المدخلة عن طريق هذا المفتاح

فمثلاً

لو قمنا بانشاء hashmap

HashMap<String, String> myMap= new HashMap<String,String>();

ثم اضفنا العنصر data بمفتاح key

String data="data";
String key="key";

myMap.put(key, data);

يمكننا فيما بعد استدعاء هذا العنصر بهذه الطريقة

myMap.get(key)

ارجو ان يكون الفرق واضح

تحياتي

اوافقك الرأى اخي الكريم

و لكن المشكلة هنا هيا اننا لا نستطيع الدوران حولها بأستخدام foreach او ما يسمى بال ( enhanced for statement )

و شكرا لك على مرورك

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

#7

يمكنك الدوران حول كل المفاتيح وبالتالي استدعاء كل العناصر كما فعل الاخ الكريم .S.T.A.L.K.E.R

.S.T.A.L.K.E.R كتب:

 	HashMap<String, String> data = new HashMap<String, String>();
        String s = "Hello";
        data.put(s, new String("Hello world"));
        for (String dataS : data.keySet()) {
            System.out.println("Key:"+dataS);
            System.out.println("Value:"+data.get(dataS));
        }

--

Mina Fouad

Computer & Systems Engineering Dpt.

Faculty of Engineering

Alexandria University

#8
sameh mahmoud كتب:

اوافقك الرأى اخي الكريم

و لكن المشكلة هنا هيا اننا لا نستطيع الدوران حولها بأستخدام foreach او ما يسمى بال ( enhanced for statement )

و شكرا لك على مرورك

انت قلتها بنفسك لا تستطيع الدوران حولها بهذه الطريقه... لماذ؟... لأنها ليست مصفوفه \ قائمه Array \ List من أي نوع

هذه HashTable والموضوع مختلف تماما . هي عباره عن هيكل بياني معقد وتسمى Map او Tree كل مدخل فيها عباره عن مفتاح وقيمه وبالتالي من المستحيل منطقيا ان اقارنها بالمصفوفه او احاول ان اتساءل لماذا لا يمكن اتعامل معها كمصفوفه huh.gif.

وإذا مصر على الدوران اختر يا اما الدوران على المفاتيح او القيم (وبإستخدام foreach او for loop او while loop او حتى استخدم Iterator). اجابات الاخوه اكثر من كافيه.

تم تعديل هذه المشاركة بواسطة Dr.Robert في 29 ديسمبر 2010 في 09:48

1

بحثت عن قلمي البارحة فلم أجدة!

...............

لم أجد سوى لوحة المفاتيح هذة

.............

تتطلع إلي بشفقة..

.............

أكاد أسمعها .. تقول (ألم يسمع بGoogle ؟!؟؟)

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