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

أحتاج طريقه لنقل عناصر Array إلى Array أخرى

مغلق
بدأه Angel81 في 3 مارس 2005 · 5 رد · 1,119 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله

السلام عليكم

عندي سؤال مهم بالجافا يا ريت حاد يجاوبني لأني ما قدرت ألاقي حل لهالمشكله

عندي مصفوفتين two arrays

كلتا المصفوفتين نفس الحجم و ليكن حجمهم 10 من نوع int

أريد نقل عناصر المصفوفه الأولى إلى الثانيه و لكن بشكل عشوائي

يعني مثلا العنصر الخامس من المصفوفه الأولى يذهب إلى العنصر السابع من المصفوفه الثانيه

و العنصر التاني من الأولى إلى العنصر الرابع من الثانيه

و هكذا

أنا عارف إني بقدر أستخدم الmethod إللي أسمها Math.random

و لكن هذه الMethod غير كافيه لوحدها لأنها تسمح بتكرار العناصر

يا ريت إذا حدا عنده طريقه يحكيلي و لا تنسانا يا مشرفنا الغالي مجدي

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

#2

جرب الفئة

java.util.Arrays

#3

الأخ أبو مازن بعد بحث لدة 3 أيام و دراسة الpackage إللي أعطيتني إياها بجميع الmethods الخاصه بها لم أجد أي طريقه لعمل النقل ألا أني قد أوجدت طريقه بأن أرسلت العنصر الذي أريد تعبأته إلى recursive method

على فكره قعدت يومين و أنا أعمل الcode المناسب إلا أن وجدته

إلى من يهمه الأمر هذا برنامج يوضح الطريقه التي إستخدمتها بنقل عناصر الarray a إلى الarray b

public class test
{
	public static void main(String args[])
	{
  int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  int b[] = new int[10];
  int result;

  System.out.println("Array a is: ");
  for(int i = 0; i < a.length; i++)
 	 System.out.println( "a[" + i +"] =   " + a);

  System.out.println("\nArray b is: ");

  for(int i = 0; i < b.length; i++)
  {
 	 result = isExist(b, i, a);
 	 b = a[result];
  }
  for(int i = 0; i < a.length; i++)
 	 System.out.println("b[" + i +"] =   " + b);
	}
	static int isExist(int y[], int i, int z[])
	{
  int x = (int)(Math.random() * 10 );
  int result = x;
  for(int g = 0; g < i; g++)
  {
 	 if(y[g] == z[x])
 	 {
    result = isExist(y, i, z);
    break;
 	 }
  }
  return result;
	}
}

يبدو أن هذا المنتدى المساعده به صعبه جدا

هذا السؤال الثاني خلال أقل من أسبوع أطلب المساعده به و في النهايه أجد الحل بنفسي

شكرا على أي حال

#4

السلام عليكم، إن كنت عملت ذلك بنفسك فأنت عبقري، وقد استفدت من قدرات نفسك فهنيئا لك! أنا لست هنا لإعطاء الشفرة، لكن إن كان بشفرتك التي أنت صنعتها خطأ سوف أساعدك بها إن شاء الله وبإذن الله. وجوابي السابق كان بمثابة التوجيه ليس إلا.

إليك هذه الطرق:

هل تصفحت الفئة java.lang.System? هل تعلم أن بها أمر أو طريقة لنسخ محتويات مصفوفة Array.. تصفح ذلك بنفسك، أعلم أنك مستغرب!! :)

اقتباس
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

          Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array.

طريقة أخرى.

كنت أظن أن فئة java.util.Arrays ستفي بالغرض بأن تقلب لك الأرقام وسطها بطريقة عشوائية، لكني اكتشفت أن java.util.Collections تفعل هذا من خلال الطريقة shuffle.

فبدلا من استخدام (مصفوفة) استخدم (مجموعة) مثل Vector أو ArrayList أو غيرهما.

وبعد هذا استخدم Collections لقلب محتويات مجموعتك. وإن أردت اصنع نسخة قبل ذلك.

تنفيذ هذا لا يأخذ أكثر من 4 سطور!!

import java.util.*;

public class Testing {
	public static void printVector(Vector v){
  for(int i=0;i<v.size();i++)
  	System.out.println(v.elementAt(i));
	}
	public static Vector getVector(int []numbers){
  Vector v=new Vector();
  for(int i=0;i<numbers.length;i++)
  	v.add(new Integer(numbers));
  return v;
	}
	public static void main(String[]args)throws Exception{
  int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  Vector v=getVector(a);
  Vector copy=(Vector)v.clone();
  Collections.shuffle(copy);
  
  System.out.println("Collection v is: ");
  printVector(v);
  System.out.println("Collection copy is: ");
  printVector(copy);
	}

}

تم تعديل هذه المشاركة بواسطة أبومازن في 6 مارس 2005 في 13:53

#5

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

أرغب في تعلم لغة الجافا من الصفر آمل إرسال ما يساعني في ذلك من كتب وبرامج وكودات الى walid_abu_jaber@yahoo.com إذا ما في غلبة عليكم

#6

بسم الله, آسف على تأخري بالرد

شكرا جزيلا للأخ أبو مازن على هذه المعلومات المفيدة جدا, و إن شاء الله رح أستخدمها في مشروعي

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

الأخ وليد أبو جابر أنا ما عندي كتب على الكمبيوتر و لكن تستطيع أن تجد ما تحتاج من كتب و Tutorials في مواقع عديده منها مكتبة هذا المنتدى العزيز و كذلك موقع

http://www.freeprogrammingresources.com

أرجو أن تستفيد من هذا الموقع

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

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