متدهای List در Java
یک ArrayList<String> بهنام tags نگه دارید، oak بعد pine را add کنید، و مقدار اول را با tags.get(0) بخوانید. Rack.java را کامپایل کنید و java Rack را اجرا کنید. صفحه باید یک خط نشان دهد: oak. فراخوانی get(0) خانهٔ صفر را برمیدارد. دموهای بعدی همین صفحه size() را با چاپ 2 و remove(0) را با باقیماندن [pine] نشان میدهند. خواندن یک خانه، شمارش، و حذف یک خانه کار این صفحه است.
خواندن یک خانه با get
روی صفحهٔ ArrayList کل لیست را چاپ میکردید و [oak, pine] میدیدید. آن چاپ کامل هنوز کار میکند. این صفحه هر بار به یک مقدار میرسد. فراخوانی tags.get(0) واژهٔ خانهٔ صفر را برمیگرداند. شمارهٔ خانهها از صفر شروع میشود، همان ایدهٔ plants[0] در صفحهٔ arrays، ولی اینجا پرانتز میآید: get(0)، نه فقط براکت بعد از نام.
Rack.java را باز کنید. نام کلاس public را Shelf نگذارید — Rack بماند تا با نام فایل یکی باشد. اگر Shelf را موبهمو کپی کردهاید، خط تنهای System.out.println(tags); را بهعنوان مسیر درس پاک کنید؛ فایل اول این صفحه tags.get(0) را چاپ میکند. هر Scanner، nextLine، Bell.ring() یا دموی package را هم پاک کنید. برنامه نباید منتظر تایپ بماند.
نزدیک بالا، بالای public class Rack، نگه دارید:
import java.util.ArrayList;
داخل main لیست را بسازید و همان دو کلمه را add کنید:
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
بعد بنویسید:
System.out.println(tags.get(0));
عدد 0 را داخل پرانتز بدهید. tags[0] ننویسید. برای دموی اول کل لیست را بهعنوان مسیر لازم چاپ نکنید. قبل از کامپایل ذخیره کنید.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags.get(0));
}
}
از پوشهای که Rack.java در آن است اجرا کنید javac Rack.java. وقتی پرانتز و آکولاد و براکت زاویهای و نقطهویرگول جور باشند، خودِ javac خطی نمینویسد. بعد java Rack را بزنید — نه java Rack.java و نه java ArrayList. پسوند .java را از فرمان اجرا بردارید.
برنامه باید یک خط چاپ کند و بایستد: oak. منتظر تایپ شما نمیماند. اگر ترمینال منتظر ورودی صفحهکلید ماند، هنوز صدای nextLine از تمرین قدیمی در فایلی مانده است. آن را پاک کنید و ساخت، دو خط add، و System.out.println(tags.get(0)); را نگه دارید.
یکبار اجرا را راه بروید. Java از Rack.main شروع میکند. لیست با دو add رشد میکند. فراخوانی get(0) مقدار oak را برمیگرداند. خط چاپ همان واژه را مینویسد. صفحه oak را نشان میدهد. چیز دیگری نباید چاپ شود. اگر [oak, pine] دیدید، هنوز کل لیست را چاپ میکنید. خط چاپ را به tags.get(0) عوض کنید. اگر ding یا 9 دیدید، برنامهٔ قدیمی Porch یا Pier در حال اجراست — از java Rack استفاده کنید.
اگر اشتباهی get(1) را نگه دارید، صفحه pine نشان میدهد. آن Java درست است، ولی فایل نگه داشتهٔ دموی اول این صفحه نیست. get(0) را نگه دارید تا صفحه oak باشد. اگر بعد از فقط دو add صدای get(2) بزنید، در زمان اجرا خطا میدهد چون خانهٔ دو پر نشده. اینجا با get(0) بمانید.
شمارش با size
دموی دوم میپرسد چند مقدار داخل لیست است. بعد از همان دو add، tags.size() را صدا بزنید و آن عدد را چاپ کنید.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags.size());
}
}
همانطور کامپایل و اجرا کنید: javac Rack.java، بعد java Rack. صفحه 2 را نشان میدهد. متد size() یک عدد صحیح برمیگرداند. خودِ واژهها را چاپ نمیکند. اگر صفحه [oak, pine] نشان داد، لیست را چاپ کردهاید نه size(). اگر oak دیدید، هنوز چاپ get(0) دموی اول را دارید. برای فایل دوم فقط System.out.println(tags.size()); را بعد از دو add نگه دارید.
روی این صفحه برای ArrayList نام tags.length را نسازید. آرایهٔ ثابت .length دارد. لیست .size() دارد. قاطی کردن این نامها باقیماندهٔ رایج صفحهٔ arrays است. برای لیست size() را نگه دارید.
حذف یک خانه با remove
دموی سوم خانهٔ صفر را حذف میکند، بعد لیست باقیمانده را چاپ میکند.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
tags.remove(0);
System.out.println(tags);
}
}
دوباره کامپایل و اجرا کنید. بعد از remove(0) مقدار oak رفته است. pine به خانهٔ صفر میآید. چاپ لیست [pine] را نشان میدهد. دیگر صفحه [oak, pine] نیست. اگر بعد از remove بهجای کل لیست tags.get(0) چاپ کنید، فقط pine میبینید — آن شکل برای چک خوب است، ولی فایل سوم نگه داشتهشده لیست را چاپ میکند تا براکت با یک واژهٔ باقیمانده دیده شود.
remove را با شمارهٔ خانهای صدا بزنید که وجود دارد. بعد از دو add، قبل از هر حذف، هم remove(0) و هم remove(1) مجازند. این صفحه remove(0) را نگه میدارد تا اول oak برود. روی لیست دوواژهای remove(2) نزنید — آن خانه هرگز نبوده.
در مقایسه با ساخت و add در ArrayList
روی صفحهٔ ArrayList فایل درس روی println(tags) و صفحهٔ [oak, pine] میایستاد. این صفحه همان عادت ساخت و add را نگه میدارد، بعد get و size و remove را اضافه میکند. فایل Shelf که فقط کل لیست را چاپ میکند تاریخچه است، نه مسیر کوئیز اینجا. برای این صفحه java Rack را با دمویی که میخوانید اجرا کنید: اول get(0)، بعد size()، بعد remove بههمراه چاپ.
برای این صداها import تازه لازم نیست. وقتی نوع ArrayList import شده باشد مال خودِ آناند. در هر فایل Rack این صفحه import java.util.ArrayList; را بالا نگه دارید.
وقتی بعداً کلید را به مقدار وصل میکنید، صفحهٔ بعد — HashMap — آن داستان را شروع میکند. اینجا با صداهای list بمانید. روی این صفحه put یا نحو map را الزام نکنید.
چه چیزی برای HashMap میماند
این صفحه جعبهابزار پایهٔ list را تمام میکند: خواندن یک خانه، شمارش مقدارها، حذف یک خانه. صفحهٔ بعد مجموعهٔ دیگری را باز میکند که هر ورودی کلید و مقدار دارد. اینجا با get و size و remove روی ArrayList بمانید. در دموهای Rack خط HashMap ننویسید.
وقتی فایلهای قدیمی Shelf.java هنوز نزدیکاند، اگر فرمان اجرا را گیج نمیکنند همان بگذارید، یا فقط وقتی گیج میکنند پاکشان کنید. بعد از کامپایل فایل دمویی که مد نظرتان است، java Rack را اجرا کنید.
قبل از HashMap
میتوانید ArrayList<String> tags را نگه دارید، oak و pine را add کنید، با چاپ tags.get(0) مقدار oak را ببینید، با چاپ tags.size() عدد 2 را ببینید، و بعد از tags.remove(0) با چاپ لیست [pine] را ببینید. برای هر دموی نگه داشتهشده Rack.java را کامپایل کنید و java Rack را اجرا کنید. متدهای list کارشان را کردند. صفحهٔ بعد HashMap است، جایی که یک کلید به یک مقدار در یک شیء اشاره میکند.
import را نگه دارید. دو add را قبل از get یا size یا remove نگه دارید. خانهٔ صفر را بهعنوان اندیس درس این صفحه نگه دارید. این عادتها ایستگاه بازرسی قبل از رفتن جلو هستند. وقتی get(0) مقدار oak و size() عدد 2 را نشان داد، برای موضوع بعد آمادهاید.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود