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

محتاج مساعدتكم أو تصحيحكم لهذا الميثود

مغلق
بدأه fassuly في 5 نوفمبر 2006 · 2 رد · 623 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

عبارة عن ArrayList

طبعا Data Structure

لازم نكتب ميثود يشيك على ال Array هل نقدر نعمل لها insert يعني هل فيها مكان فاضي

لو لا فا هذي الميثود تكون Array جديدة بحجم أكبر من ال Array القديمة

وميثود ثاني للعكس انو اذا كان ال Array فيها اماكن فاضية واجد تعمل Array جديدة بحجم أقل من القديمة

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

وال Main ماعرفت اني اتحكم بعملية ال Insert يعني ماعرفت اسوي Test للكودين هذول

طبعا الميثود هي اخر اثنين في الكود

واتمنى يكون كل شي واضح

وشكرا

aList.txt

#2

السلام عليكم

أخي انت ماحددت المعيار لكل داله ، لكن انا اخذته باعتبار إذا أكثر من 50 % لاتقم بعمل deallocate

وallocate فقط إذا كانت ArrayList مليانه ومافيه مكان واحد فاضي

اضفت لك methods تقليديه display& find

import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;

public class ArrayList<T> 
{
	private int maxsize;
	private int size;
	private int current;
	private T[] nodes;

	/** Creates a new instance of ArrayList */
	public ArrayList(int n) {
		maxsize = n;
		size = 0;
		current = -1;
		nodes = (T[]) new Object[n]; }
public boolean full () {
		return size == maxsize; }
 public boolean empty() {
		return size == 0; }
 public boolean last() {
		return current == size; }
 public void findfirst () {
		current = 0; }
 public void findnext () {
		current++; }
public T retrieve () {
		return nodes[current]; }
 public void update (T val) {
		nodes[current] = val; }
 public void insert (T val) {
		for (int i = size-1; i > current; --i) {
			nodes[i+1] = nodes;
		}
		current++;
		nodes[current] = val;
		size++;
	}
public void remove () {
		for (int i = current + 1; i < size; i++) {
			nodes[i-1] = nodes;
		}
		size--;
		if (size == 0) current = -1;
		else if (current == size) current = 0;
	}
public void display()
{
	String out="ArrayList contain : |";
	findfirst();
	for(int i=0;i<size;i++)
	{
		out+=retrieve()+" | ";
		findnext();
	}
	System.out.println(out);

}
public int getCurrent()
{
	return current;
}
public boolean find(T data)
{
	findfirst();
	boolean flag=true;
	while(!last()&&flag)
	{
		if(retrieve().equals(data))
			flag=false;
		else
			findnext();
	}
  return flag;

}
	private boolean allocate(){
		if(full()){
			maxsize=maxsize*2;
			return true;
		}
		else
			return false;
	}
	private boolean deallocate(){
		if(size<(maxsize/2)){
			maxsize=maxsize/2;
			return true;
		}
		else return false;
	}
private int space()
{
	return maxsize-size;
}

 public static void main(String args[])
{
	ArrayList<String> ar=new ArrayList<String>(10);
	ar.insert("A");ar.insert("B"); ar.insert("C");ar.insert("D");
	ar.display();
	System.out.println(" Find Method : enter target name :");
	Scanner sc=new Scanner(System.in);
	  String s=sc.nextLine();
	boolean flag=ar.find(s);
	  if(!flag)
		System.out.println(s+" Found at position "+(ar.getCurrent()));
	else
		System.out.println(s+" not Found in ArrayList ");

	flag=ar.allocate();
	if(flag)
		System.out.println("Your size doubled now ");
	else
		System.out.println(" ArrayList has "+ar.space()+" Free node");

	flag=ar.deallocate();
	if(flag)
		System.out.println("Your size half previous one ");
	else
		System.out.println("You have more Than 50% data in the ArrayList");

}

}
#3

السلام عليكم

مشكووور أخووووي ويعطيييييييك ألف ألف عااافيه

ظبط معاي ميه ميه وظفت عليه كم ميثود أيضا

{عيسى} كتب:
أخي انت ماحددت المعيار لكل داله ، لكن انا اخذته باعتبار إذا أكثر من 50 % لاتقم بعمل deallocate

وallocate فقط إذا كانت ArrayList مليانه ومافيه مكان واحد فاضي

هوا المشكلة في السؤال ماحدد أي شي فا زي ماقلت ياطويل العمر انا مفكر زيك يا اني ازيده الدبل أو إني انقص النص

ويعطييييييك ألف ألف عاااافيه ولو عندي أي مشكلة ثانيه راح أحطها

جزاك الله خير

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…