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

HashMap

مغلق
بدأه دلوعة الجافا في 9 أبريل 2006 · 6 رد · 721 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي مشكله بسيطه و الي اهيه هذا الكود مال PipedThread

المشكله اني اريد يوم اكتب واحد يطلعلي value حق key الاول

و اذا دخل key غير موجود value تكون null

و لازم key تكون random يعني اي رقم يدخله اليوزر

ممكن احد يساعدني فيه

محاولتي:

import java.io.*;
import java.util.*;

public class PipedThread extends Thread{
	private DataInputStream dis;
	private DataOutputStream dos;
	private String name;

	public static void main(String [] args){
  try{
 	 PipedInputStream pis = new PipedInputStream();
 	 PipedOutputStream pos = new PipedOutputStream(pis);

 	 //pis.connect(pos);

 	 PipedThread t1 = new PipedThread(pos,"t1");
 	 PipedThread t2 = new PipedThread(pis,"t2");

 	 HashMap map = new HashMap();

   	 map.put("1" , "Alia");
   	 map.put("2" , "Asma");
   	 map.put("3" , "Laila");
   	 map.put("4" , "Fatema");
   	 map.put("5" , "Noura");

        String name = (String)map.get("1");


 	 t1.start();
 	 t2.start();

    t1.join();
    t2.join();
    System.out.println(map);

    //System.out.println("the end");

  }catch(Exception e){
 	 System.err.println("ERROR : " + e);
  }


	}//main

	public PipedThread(PipedInputStream p, String name){
  super(name);
  dis = new DataInputStream(p);

	}

	public PipedThread(PipedOutputStream p, String name){
  super(name);
  dos = new DataOutputStream(p);



	}

	public void run(){

  if (Thread.currentThread().getName().equals("t1")){ // i am in thread 1


    System.out.println();

  }//if

	}
}//class
#2

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

لماذا هذا السطر ؟

 String name = (String)map.get("1");

قومي بعمل method تقوم بإدخال قيمة key من المستخدم وتدخلها في الدالة get

جربي هذا ال code :

public String getName ( int key)
{
return (String) map.get (n);
}

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

#3

جربت بس يطلع عندي error

و المشكله في

return (String)map.get (n);

#4

هو ممكن يكون الخطأ مش فى الجملة دى هو ممكن يكون خطأ logically لعدم استخدام خاصيةالSyncronization لان هنا هو بيستخدم نفش ال thread فى عملية القراءة والكتابة فممكن يكون حصل اى خطأ من الاخطاء الشائهة بتاعة ال Multi Threading(Thred Cooperation) فاحاولى تضبطى العملية شوية فى run() method

والله أعلى واعلم

وفقكم الله

التوفيق من الله

الخطأ منى ومن الشيطان

www.tanahy.blogspot.com

#5

بليييييز اتمنى احد يشوف مشكلتي

لاني احاول بس كل ما احاول يطلع لي error

حتى استخدمة ال ArrayList()

و مثل الشيء فيه error

اتمنى احد يساعدني

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

تم تعديل هذه المشاركة بواسطة دلوعة الجافا في 10 أبريل 2006 في 20:06

#6

هذا التعديل على ضوء ما فهمت من طلبك.

استخدمت طريقة الاخ علاء

ادخلي القيمه، ثم Enter

package test;
import java.io.*;
import java.util.*;

public class PipedThread extends Thread{
	private DataInputStream dis;
	private DataOutputStream dos;
	private String name;
	private static HashMap map;

	public PipedThread(PipedInputStream p, String name){
   super(name);
   dis = new DataInputStream(p);
	}

	public PipedThread(PipedOutputStream p, String name){
   super(name);
   dos = new DataOutputStream(p);
	}

	public void run(){
  if (Thread.currentThread().getName().equals("t1")){ // i am in thread 1
  	System.out.println();
  }//if
	}

	public static String getName ( int key){
  return (String) map.get (key);
	}

	public static void main(String [] args){
   try{
  	PipedInputStream pis = new PipedInputStream();
    	PipedOutputStream pos = new PipedOutputStream(pis);
  
  	PipedThread t1 = new PipedThread(pos,"t1");
  	PipedThread t2 = new PipedThread(pis,"t2");
  	
  	map = new HashMap();
  
      map.put(1 , "Alia");
      map.put(2 , "Asma");
      map.put(3 , "Laila");
      map.put(4 , "Fatema");
      map.put(5 , "Noura");
  
  	t1.start();
    	t2.start();
  
  	t1.join();
  	t2.join();
  	
  	Scanner input=new Scanner( System.in );
  	int key=input.nextInt();
  	System.out.println(getName(key));
   }catch(Exception e){
    	System.err.println("ERROR : " + e);
   }
	}//main

}//class

تم تعديل هذه المشاركة بواسطة - a l t - في 10 أبريل 2006 في 22:23

11_03_06_12_48_57_1142110137Image(_66).jpg

#7

شكرا اخويه و الله يجزيك الف خير

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

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