Core Java Volume
Số trang: 11
Loại file: doc
Dung lượng: 76.50 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Trongnhững ngôn ngữ lập trình nhìnchung, trong C bạnphải fix cỡ của tất cả các mảng ởthời gian dịch. Người lập trình ghét điều này bởi vì nó gây cho họ sự không thoải mái. Có baonhiêu nhân viên sẽ ở một phòng? Chắc chắn không hơn 100. Điều j sẽ xảy ra nếu như phòng đócó 150 nhân viên? Bạn có muốn lãng phí 90 entries cho các phòng với chỉ có 10 nhân viên?
Nội dung trích xuất từ tài liệu:
Core Java VolumeSource:CoreJavaVolume1(Chapter5Genericarraylist).*Tiệnlợikhidùngarraylist>nótựđộnggiãnmảngnếusốlượngcácelementslàquácapacity.Nósẽtựđộngtạo1arraycóstoragelớnhơnsauđócopytoànbộcácelementssangmảngmới.CóthểtrimToSize>bỏstoragetớisizecủaarray.Nếunhưthêm1elementmớivàonósẽrellocate>vìvậycầnchúýtrướckhidùngthisstatement.CóthểensureCapacity>chắcchắnlàchỉchứa1sốlượngcốđịnh,n1arraylistcósứcchứa100nhưnglúcbanđầunócóthểkhônggiữ1elementsnàocảsaukhikhởitạo.*Xửlýcácelementstrongarraylist.Bạnphảichỉrõkíchcỡcủamảng.Bạnsửdụngaddđểaddnhiềuelementsmàbạnmuốn.Bạnsửdụngsize()thayvìsửdụnglengthđểđếmsốphầntử.Bạnsửdụnga.get(i)thayvìxửdụngađểxửlýthànhphần.Bạnsửdụngset>replace,notforadd.Đếnđâytựhỏitạisaokodùngvectormàlạidùngarraylist.Vìlýdonhưsau:Khidùngcâulệnha=b,vớia,blàvectorthìasẽtạora1vectormớicócapacity=capacitycủa b.Rồicopycácelementstừb>aTrongkhiđóvớiarraylistthìavàbcùngtrỏtới1arraylist.*KhảnăngtươngthíchgiữakiểuvàArrayLists. MoredetailTrongnhữngngônngữlậptrìnhnhìnchung,trongCbạnphảifixcỡcủatấtcảcácmảngởthờigiandịch.Ngườilậptrìnhghétđiềunàybởivìnógâychohọsựkhôngthoảimái.Cóbaonhiêunhânviênsẽởmộtphòng?Chắcchắnkhônghơn100.Điềujsẽxảyranếunhưphòngđócó150nhânviên?Bạncómuốnlãngphí90entrieschocácphòngvớichỉcó10nhânviên?TrongJava,tìnhhuốngnàyđãtrởnêntốthơn.Bạncóthểthiếtlậpcỡcủa1mảngởthờigianchạy.int actualSize = ...;Employee[] staff = new Employee[actualSize];Tấtnhiên,codenàykhôngphảilàhoàntoàngiảiquyếtđượcvấnđềđịnhnghĩamảngđộngởthờigianchạy.1lầnbạnthiếtlậpcỡcủamảng,bạnkhôngthểthayđổi1cáchdễdàng.Thayvàođó,mộtcáchtốtnhấttrongJavavớitìnhhuốngnàylàsửdụngclassJavakhác,đượcgọilàArrayList.ClassArrayListthìtươngtựvới1mảngnhưngnótựđộngđiềuchỉnhsứcchưacủanókhibạnthêmvàxoácácelementsmàbạnkhôngcầnviếtthêmbấtcứcodenào.TrongJDK5.0,ArrayListlàclassgenericvớikiểuthamsố.Đểchỉrõkiểucủacácobjectsmàarraylistnắmgiữ,bạnbổsungthêmdấuđóngngoặcnhọn,vídụArrayList.BạnsẽthấyởChương13cáchđịnhnghĩa1classgenericriêngcủabạnnhưngbạnkhôngcầnbiếtnhưngcôngnghệđượcsửdụngtrongkiểuArrayList.Ởđâychúngtakhaibáovàxâydựng1listmảngcácobjectsEmployee:ArrayListstaff=newArrayList();NOTE:TrướcJDK5.0,khôngcócácgenericclasses.Thayvàođó,chỉcó1classArrayList1vừavớitấtcảgiữcácelementscókiểuObject.NếubạnphảisửdụngphiênbảncũcủaJava,đơngiảnlàbảnxoáhếtcác.BạncóthểsửdụngArrayListmàkhôngcầncótrongJDK5.0vàsaunày.Nóđượcxemlàkiểuthômàthamsốđượcxoá.NOTE:TrongcácphiênbảncũcủangônngữlậptrìnhJava,cáclậptrìnhviênsửdụngclassVectorđốivớicácmảngđộng.Tuynhiên,ArrayListthìhiệuquảhơnvàkhôngcólýdojtốthơnđểsửdụngclassVector.Bạnsửdụngmethodaddđểaddcácelementsvàoarraylist.Vídụ,đâylàcáchbạnxácđịnhcácobjectsemployee:staff.add(new Employee(Harry Hacker, ...));staff.add(new Employee(Tony Tester, ...));ArrayListquảnlý1mảngmàobjecttrỏtới.Thậmchí,mảngđóchạyngoàikhoảng.Đâylànơimàcácarraylistlàmviệcmộtcáchlinhđộngcủachúng:Nếubạngọiaddvàmảngbêntrongđầythìarraylisttựđộngtạora1mảnglớnhơnvàcopiestấtcảcácobjectstừmảngnhỏhơnsangmảnglớnhơn.Nếubạnbiếthoặccódựđoántốt,cóbaonhiêuthànhphầnbạnmuốnlưugiữthìgọiensureCapacitytrướckhilấpđầyarraylist:staff.ensureCapacity(100);Nósẽxácđịnh100objectsbêntrongmảng.BạncóthểtruyềnsứcchứavàohàmdựngArrayList:ArrayListstaff=newArrayList(100);CAUTIONXácđịnh1arraylist:newArrayList(100)//sứcchứalà100khôngcócùngphânphốivới1mảngmớinhư:newEmployee[100]//sizelà100Cósựkhácnhauquantrọnggiữasứcchứacủa1arraylistvàcỡcủamảng.Nếubạnphânphối1mảngvới100entriesthìmảngcó100slots,sẵnsàngchoviệcsửdụng.Arraylistvớisứcchứa100elementscótiềmnănggiữ100elements(vàthựcranhiềuhơn100),nhưngkhibắtđầu,thậmchísaukhikhởitạo,arraylistkhôngnắmgiữelementsnàocả.Methodsizetrảvềsốcảelementsthựctrongarraylist.Vídụ:staff.size();trảvềsốcácelementshiệntạitrongarrayliststaff.Đâylàtươngtựvớimảnga:a.length1lầnbạnchắcchắnrằngarraylistlàcốđịnh,bạncóthểgọimethodtrimToSize.Methodnàyđiềuchỉnhcỡcủabộnhớđểsửdụngđểsửdụng1cáchchínhxácđểc ...
Nội dung trích xuất từ tài liệu:
Core Java VolumeSource:CoreJavaVolume1(Chapter5Genericarraylist).*Tiệnlợikhidùngarraylist>nótựđộnggiãnmảngnếusốlượngcácelementslàquácapacity.Nósẽtựđộngtạo1arraycóstoragelớnhơnsauđócopytoànbộcácelementssangmảngmới.CóthểtrimToSize>bỏstoragetớisizecủaarray.Nếunhưthêm1elementmớivàonósẽrellocate>vìvậycầnchúýtrướckhidùngthisstatement.CóthểensureCapacity>chắcchắnlàchỉchứa1sốlượngcốđịnh,n1arraylistcósứcchứa100nhưnglúcbanđầunócóthểkhônggiữ1elementsnàocảsaukhikhởitạo.*Xửlýcácelementstrongarraylist.Bạnphảichỉrõkíchcỡcủamảng.Bạnsửdụngaddđểaddnhiềuelementsmàbạnmuốn.Bạnsửdụngsize()thayvìsửdụnglengthđểđếmsốphầntử.Bạnsửdụnga.get(i)thayvìxửdụngađểxửlýthànhphần.Bạnsửdụngset>replace,notforadd.Đếnđâytựhỏitạisaokodùngvectormàlạidùngarraylist.Vìlýdonhưsau:Khidùngcâulệnha=b,vớia,blàvectorthìasẽtạora1vectormớicócapacity=capacitycủa b.Rồicopycácelementstừb>aTrongkhiđóvớiarraylistthìavàbcùngtrỏtới1arraylist.*KhảnăngtươngthíchgiữakiểuvàArrayLists. MoredetailTrongnhữngngônngữlậptrìnhnhìnchung,trongCbạnphảifixcỡcủatấtcảcácmảngởthờigiandịch.Ngườilậptrìnhghétđiềunàybởivìnógâychohọsựkhôngthoảimái.Cóbaonhiêunhânviênsẽởmộtphòng?Chắcchắnkhônghơn100.Điềujsẽxảyranếunhưphòngđócó150nhânviên?Bạncómuốnlãngphí90entrieschocácphòngvớichỉcó10nhânviên?TrongJava,tìnhhuốngnàyđãtrởnêntốthơn.Bạncóthểthiếtlậpcỡcủa1mảngởthờigianchạy.int actualSize = ...;Employee[] staff = new Employee[actualSize];Tấtnhiên,codenàykhôngphảilàhoàntoàngiảiquyếtđượcvấnđềđịnhnghĩamảngđộngởthờigianchạy.1lầnbạnthiếtlậpcỡcủamảng,bạnkhôngthểthayđổi1cáchdễdàng.Thayvàođó,mộtcáchtốtnhấttrongJavavớitìnhhuốngnàylàsửdụngclassJavakhác,đượcgọilàArrayList.ClassArrayListthìtươngtựvới1mảngnhưngnótựđộngđiềuchỉnhsứcchưacủanókhibạnthêmvàxoácácelementsmàbạnkhôngcầnviếtthêmbấtcứcodenào.TrongJDK5.0,ArrayListlàclassgenericvớikiểuthamsố.Đểchỉrõkiểucủacácobjectsmàarraylistnắmgiữ,bạnbổsungthêmdấuđóngngoặcnhọn,vídụArrayList.BạnsẽthấyởChương13cáchđịnhnghĩa1classgenericriêngcủabạnnhưngbạnkhôngcầnbiếtnhưngcôngnghệđượcsửdụngtrongkiểuArrayList.Ởđâychúngtakhaibáovàxâydựng1listmảngcácobjectsEmployee:ArrayListstaff=newArrayList();NOTE:TrướcJDK5.0,khôngcócácgenericclasses.Thayvàođó,chỉcó1classArrayList1vừavớitấtcảgiữcácelementscókiểuObject.NếubạnphảisửdụngphiênbảncũcủaJava,đơngiảnlàbảnxoáhếtcác.BạncóthểsửdụngArrayListmàkhôngcầncótrongJDK5.0vàsaunày.Nóđượcxemlàkiểuthômàthamsốđượcxoá.NOTE:TrongcácphiênbảncũcủangônngữlậptrìnhJava,cáclậptrìnhviênsửdụngclassVectorđốivớicácmảngđộng.Tuynhiên,ArrayListthìhiệuquảhơnvàkhôngcólýdojtốthơnđểsửdụngclassVector.Bạnsửdụngmethodaddđểaddcácelementsvàoarraylist.Vídụ,đâylàcáchbạnxácđịnhcácobjectsemployee:staff.add(new Employee(Harry Hacker, ...));staff.add(new Employee(Tony Tester, ...));ArrayListquảnlý1mảngmàobjecttrỏtới.Thậmchí,mảngđóchạyngoàikhoảng.Đâylànơimàcácarraylistlàmviệcmộtcáchlinhđộngcủachúng:Nếubạngọiaddvàmảngbêntrongđầythìarraylisttựđộngtạora1mảnglớnhơnvàcopiestấtcảcácobjectstừmảngnhỏhơnsangmảnglớnhơn.Nếubạnbiếthoặccódựđoántốt,cóbaonhiêuthànhphầnbạnmuốnlưugiữthìgọiensureCapacitytrướckhilấpđầyarraylist:staff.ensureCapacity(100);Nósẽxácđịnh100objectsbêntrongmảng.BạncóthểtruyềnsứcchứavàohàmdựngArrayList:ArrayListstaff=newArrayList(100);CAUTIONXácđịnh1arraylist:newArrayList(100)//sứcchứalà100khôngcócùngphânphốivới1mảngmớinhư:newEmployee[100]//sizelà100Cósựkhácnhauquantrọnggiữasứcchứacủa1arraylistvàcỡcủamảng.Nếubạnphânphối1mảngvới100entriesthìmảngcó100slots,sẵnsàngchoviệcsửdụng.Arraylistvớisứcchứa100elementscótiềmnănggiữ100elements(vàthựcranhiềuhơn100),nhưngkhibắtđầu,thậmchísaukhikhởitạo,arraylistkhôngnắmgiữelementsnàocả.Methodsizetrảvềsốcảelementsthựctrongarraylist.Vídụ:staff.size();trảvềsốcácelementshiệntạitrongarrayliststaff.Đâylàtươngtựvớimảnga:a.length1lầnbạnchắcchắnrằngarraylistlàcốđịnh,bạncóthểgọimethodtrimToSize.Methodnàyđiềuchỉnhcỡcủabộnhớđểsửdụngđểsửdụng1cáchchínhxácđểc ...
Tìm kiếm theo từ khóa liên quan:
thủ thuật máy tính công nghệ thông tin tin học quản trị mạng computer networkGợi ý tài liệu liên quan:
-
52 trang 430 1 0
-
24 trang 354 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 313 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 301 0 0 -
74 trang 296 0 0
-
96 trang 292 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 289 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 280 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 275 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0