اگر برنامه مجموعه ای را برمی گرداند که هیچ مقداری ندارد، مطمئن شوید که مجموعه خالی به جای عناصر Null برگردانده شده است. این باعث می شود تا تعداد زیادی ldquo;if elserdquo; برای تست عناصرNull حذف شوند.
public class getLocationName {
return (null==cityName ? ldquo;rdquo;: cityName);
}
اگر دو رشته با استفاده از عملگر ldquo;+rdquo; در یک حلقه ldquo;forrdquo; به هم متصل شوند، در هر تکرار حلقه یک شی رشته ای جدید ایجاد می شود. این باعث اتلاف حافظه و افزایش زمان اجرا می شود. همچنین هنگام ساخت نمونه از یک شی رشته ای باید از سازنده ها اجتناب کنید و آن باید به طور مستقیم ساخته شود. برای مثال:
//Slower Instantiation
String bad = new String(ldquo;Yet another string objectrdquo;);
//Faster Instantiation
String good = ldquo;Yet another string objectrdquo;
یکی از پر هزینه ترین عملیات (از نظر استفاده از حافظه) در جاوا، Object Creation یا همان ساخت شی است. بنابراین توصیه می شود، اشیا را فقط در صورت وم ایجاد یا مقدار اولیه شوند. کد زیر مثالی ارائه می دهد:
import java.util.ArrayList;
import java.util.List;
public class Employees {
private List Employees;
public List getEmployees() {
//initialize only when required
if(null == Employees) {
Employees = new ArrayList();
}
return Employees;
}
}
اغلب برای توسعه دهندگان تصمیم گیری درباره استفاده از ساختار ArrayList برای نوع داده آرایه سخت است. هر دوی آنها نقاط قوت و ضعف خود را دارند. انتخاب واقعاً به شرایط مورد نیاز بستگی دارد.
import java.util.ArrayList;
public class arrayVsArrayList {
public static void main(String[] args) {
int[] myArray = new int[6];
myArray[7]= 10; // ArraysOutOfBoundException
//Declaration of ArrayList. Add and Remove of elements is easy.
ArrayList myArrayList = new ArrayList<>();
myArrayList.add(1);
myArrayList.add(2);
myArrayList.add(3);
myArrayList.add(4);
myArrayList.add(5);
myArrayList.remove(0);
for(int i = 0; i < myArrayList.size(); i++) {
System.out.println(ldquo;Element: rdquo; + myArrayList.get(i));
}
//Multi-dimensional Array
int[][][] multiArray = new int [3][3][3];
}
}
۱- آرایه ها اندازه ثابتی دارند اما اندازه در ArrayListها متغیر است. از آنجا که اندازه آرایه ثابت است، حافظه برای متغیر نوع آرایه در زمان اعلان و تعریف آن اختصاص می یابد. در نتیجه آرایه ها بسیار سریع هستند.
از طرف دیگر اگر اندازه داده معلوم نباشد، در آرایه برای تعداد داده های بیشتر منجر به خطای ایندکس خارج از محدوه اندازه آرایه می شود و تعداد داده های کمتر باعث اتلاف فضای ذخیره سازی می شود.
۲- اضافه یا حذف عناصر از ArrayList بسیار ساده تر از آرایه است.
۳- آرایه می تواند چند بعدی باشد اما ArrayList تنها می تواند یک بعد داشته باشد.
درباره این سایت