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

تحديد انماط محتوى الـ Arrsylist

بدأه vector_ever في 23 يوليو 2013 · 2 رد · 873 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

لدي مشكلة بسيطة صغيرة في تحديد انماط type لمحتوى Arraylist

 

على فرض لدي الصنف البسيط التالي لـ Arraylist

import java.util.ArrayList;

public class ArrList1 {

protected static ArrayList col1 = new ArrayList();
	
	public  void arrList() {

col1.add("hallo");
col1.add(2);
col1.add(3);
col1.add(4.0);
col1.add(5.5);
col1.add(6);
}
 }

الآن طباعة عنصر محدد يحدده المستخدم  من محتويات هذه الـ Arraylist  فتكون النتيجة انه اذا كان من النوع String يطبع انه String  ويطبع قيمته وهكذا لكل باقي الانواع

import java.util.Scanner;


public class test extends ArrList1{


	public static void main(String[] args){
		
		ArrList1 arr = new ArrList1();
		arr.arrList();
		
		Scanner keyboard = new Scanner (System.in);
		System.out.print("Please enter Value from 0-5: ");
		int f = keyboard.nextInt();
		
		
		   if(col1.get(f) != null){
			 
	       	 	if (col1.get(f).equals(Integer.TYPE)) 
	            {
			       int NewColumn;
			       NewColumn =  (int) col1.get(f);
			       System.out.println("Integer" + f );
	            } 
	       	 	
	       	 	else if (col1.get(f).equals(String.class)) 
	            {
			       String NewColumn;
			       NewColumn =  (String) col1.get(f);
			       System.out.println("String" + f );
	            }
	            
	       	 	else if (col1.get(f).equals(Double.TYPE)) 
	            {
			       double NewColumn;
			       NewColumn =  (double) col1.get(f);
			       System.out.println("Double" + f );
	            }
	            
	       	 	else if (col1.get(f).equals(Float.TYPE)) 
	            {
			       float NewColumn;
			       NewColumn =  (float) col1.get(f);
			       System.out.println("Float" + f );
	            }
	}

	}
}

المشكلة انه لا يطبع اي شيء لا اعرف اين الخلل في الكود

 

أرجو المساعدة

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#2

بعد التجريب وجدت الحل:

import java.util.Scanner;


public class test extends ArrList1{


	public static void main(String[] args){
		
		ArrList1 arr = new ArrList1();
		arr.arrList();
		
		Scanner keyboard = new Scanner (System.in);
		System.out.print("Please enter Value from 0-5: ");
		int f = keyboard.nextInt();
		
		Object o = col1.get(f);
		
		   if(o != null){
			 
	       	 	if (o instanceof Integer) 
	            {
			       int NewColumn;
			       NewColumn =  (int) o;
			       System.out.println("Integer " + col1.get(f) );
	            } 
	       	 	
	       	 	else if (o instanceof String) 
	            {
			       String NewColumn;
			       NewColumn =  (String) o;
			       System.out.println("String " + col1.get(f) );
	            }
	            
	       	 	else if (o instanceof Double) 
	            {
			       double NewColumn;
			       NewColumn =  (double) o;
			       System.out.println("Double " + col1.get(f) );
	            }
	            
	       	 	else if (o instanceof Float) 
	            {
			       float NewColumn;
			       NewColumn =  (float) o;
			       System.out.println("Float " + col1.get(f) );
	            }

	}

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#3

المساواة ب equals لم تعمل بسبب أنه تم عمل مساواة بين ال reference (اي هل الكائن هو نفسه) وهذا الوضع الطبيعي للدالة equals عندما لا تعيد تعريفها without override

 

لا يفضل وضع بيانات مختلفة النوع في collection ، وانما يجب تحديد ال type فيها.. واذا أردت ان تحمل عدة بيانات مختلفة  يمكنك وضعها في كلاس يمثل المفهوم لذلك الشيء.

1

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

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