|-รายการ: องค์ประกอบได้รับการสั่งซื้อ (ออกไปตามที่เก็บไว้และคำสั่งซื้อจะไม่ยุ่งเหยิง) มาร์กมุม 2) เนื่องจากชุดนี้ระบบมีดัชนี
|- ArrayList: โครงสร้างข้อมูลพื้นฐานใช้โครงสร้างอาร์เรย์ (ความยาวของอาร์เรย์ยาวกว่าตัวแปร 50%) (คุณสมบัติคือการสืบค้นนั้นเร็วมาก แต่การเพิ่มและการลบนั้นช้า) ไม่ได้ซิงโครไนซ์เธรด
|- LinkedList: โครงสร้างข้อมูลพื้นฐานเป็นโครงสร้างรายการที่เชื่อมโยง
|- เวกเตอร์: เลเยอร์พื้นฐานคือการซิงโครไนซ์โครงสร้างข้อมูลอาร์เรย์ (ความยาวอาร์เรย์ขยาย 100% โดยตัวแปร) (ทั้งแบบสอบถามและการเพิ่มเติมและการลบนั้นช้ามากและถูกแทนที่ด้วย ArrayList)
รายการ: วิธีที่ไม่ซ้ำกัน
เพิ่มขึ้น
การคัดลอกรหัสมีดังนี้:
บูลีนเพิ่ม (INT ดัชนี, E Element)
บูลีน Addall (ดัชนี, คอลเลกชัน)
การคัดลอกรหัสมีดังนี้:
โมฆะคงที่สาธารณะ list_add () {
arraylist a1 = new ArrayList ();
a1.add ("Java");
a1.add ("php"); // องค์ประกอบในรายการรวบรวมรายการสามารถทำซ้ำได้
a1.add (". net");
System.out.println ("คอลเลกชันดั้งเดิม:"+a1);
a1.add (1, "flash");
a1.add (0, "ps");
System.out.println (A1);
arraylist a2 = new ArrayList ();
a2.add ("JavaScript");
a2.add ("3dmax");
a2.add ("IBM");
a1.addall (0, a2);
System.out.println (A1);
-
ลบองค์ประกอบที่ตำแหน่งที่กำหนด
การคัดลอกรหัสมีดังนี้:
บูลีนลบ (ดัชนี int)
การคัดลอกรหัสมีดังนี้:
โมฆะคงที่สาธารณะ list_remove () {
arraylist a1 = new ArrayList ();
a1.add ("JavaScript");
a1.add ("php");
a1.add ("flash");
System.out.println ("คอลเลกชันดั้งเดิม:"+a1);
A1.remove (0);
System.out.println (A1);
-
แก้ไของค์ประกอบของชุดมุมที่ระบุ (ดัชนี int, องค์ประกอบ e) องค์ประกอบที่ส่งคืนจะถูกแก้ไข
การคัดลอกรหัสมีดังนี้:
โมฆะคงที่สาธารณะ list_set () {
arraylist a1 = new ArrayList ();
a1.add ("JavaScript");
a1.add ("php");
a1.add (". net");
System.out.println ("คอลเลกชันดั้งเดิม:"+a1);
a1.set (1, "falsh");
System.out.println (A1);
-
ตรวจสอบ
การคัดลอกรหัสมีดังนี้:
รับ (ดัชนี int) ส่งคืนองค์ประกอบที่ตำแหน่งที่ระบุในรายการ
Sublist (Int FromIndex, Int ToIndex) ส่งคืนองค์ประกอบบางอย่างระหว่าง FromIndex (รวมถึง) และ ToIndex (ไม่รวม) ที่ระบุไว้ในรายการ
การคัดลอกรหัสมีดังนี้:
โมฆะคงที่สาธารณะ list_get () {
arraylist a1 = new ArrayList ();
a1.add ("Java");
a1.add ("php");
a1.add ("flash");
System.out.println (a1.get (0)); // รับองค์ประกอบของจุดมุมที่ระบุด้วยวิธีนี้คุณสามารถสำรวจองค์ประกอบทั้งหมดในชุด
System.out.println (a1.sublist (1, 3)); // รับองค์ประกอบในส่วนหนึ่งของคอลเลกชันรวมถึงหัว แต่ไม่ใช่หาง
-
รายการ Iterator เฉพาะคอลเลกชัน: listiterator (เป็น interface subinterface ของตัววนซ้ำ)
สังเกต:
ในระหว่างการทำซ้ำองค์ประกอบในคอลเลกชันไม่สามารถดำเนินการผ่านวิธีการของวัตถุคอลเลกชัน
เนื่องจากข้อยกเว้นพร้อมกันพร้อมกัน (ข้อยกเว้นพร้อมกัน) จะเกิดขึ้น
ดังนั้นเมื่อวนซ้ำคุณสามารถใช้เมธอดตัววนซ้ำเพื่อสร้างองค์ประกอบเท่านั้น
เนื่องจากวิธีตัววนซ้ำมี จำกัด จึงสามารถตัดสินลบและลบองค์ประกอบได้เท่านั้น
หากคุณต้องการการดำเนินการอื่น ๆ เช่นการเพิ่มการแก้ไข ฯลฯ คุณต้องใช้อินเตอร์เฟซย่อย
อินเทอร์เฟซนี้สามารถรับได้ผ่านวิธี listiterator ของรายการรวบรวมรายการ
การคัดลอกรหัสมีดังนี้:
คลาสสาธารณะ ListiterAtordemo {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
arraylist a1 = new ArrayList ();
a1.add ("Java01");
a1.add ("Java02");
a1.add ("Java03");
a1.add ("Java04");
System.out.println ("คอลเลกชันดั้งเดิมคือ:"+a1);
/*เตรียมที่จะเพิ่มหรือลบองค์ประกอบในระหว่างกระบวนการวนซ้ำ
ตัววนซ้ำมัน = al.iterator ();
ในขณะที่ (it.hasnext ()) {
Object obj = it.next ();
if (obj.equals ("Java02")))
//al.add("Java008") ยกเว้นข้อยกเว้นที่เกิดขึ้นพร้อมกันจะเกิดขึ้นเนื่องจากตัววนซ้ำกำลังดำเนินการคอลเลกชันและไม่สามารถใช้วิธีการรวบรวมเพื่อใช้งานคอลเลกชันได้อีกต่อไป
it.remove (); // ลบการอ้างอิง Java02 ออกจากคอลเลกชัน
System.out.println ("obj:"+obj);
-
-
// เฉพาะผู้ฟังรายการเท่านั้นที่มีฟังก์ชั่นการเพิ่มการลบการแก้ไขและการตรวจสอบเนื่องจากรายการเท่านั้นที่มีดัชนี
listiterator li = a1.listiterator ();
ในขณะที่ (li.hasnext ()) {
if (li.next (). เท่ากับ ("Java02"))))
//li.add("java009 ");
li.set ("Java006");
-
-
-
เวกเตอร์: การแจงนับเป็นวิธีที่ไม่เหมือนใครในการดึงเวกเตอร์ซึ่งคล้ายกับตัววนซ้ำมาก (อันที่จริงแล้วการแจงนับและการทำซ้ำจะเหมือนกัน) และถูกแทนที่ด้วยตัววนซ้ำ
การคัดลอกรหัสมีดังนี้:
Vectordemo ชั้นเรียนสาธารณะ {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
เวกเตอร์ v = เวกเตอร์ใหม่ ();
V.add ("Java01");
V.add ("Java02");
V.add ("Java03");
V.add ("Java04");
สำหรับ (การแจงนับ en = v.elements (); en.hasmoreElements ();) {
System.out.println (en.nextelement ());
-
-
-
LinkedList:
วิธีพิเศษ:
addfirst ();
getFirst (); หากไม่มีองค์ประกอบในคอลเลกชัน nosuchelementException จะปรากฏขึ้น
RemoveFirst (); หากไม่มีองค์ประกอบในคอลเลกชัน nosuchelementException จะปรากฏขึ้น
วิธีการทางเลือกปรากฏใน JDK1.6
ข้อเสนอ First ();
peekfirst (); หากไม่มีองค์ประกอบในคอลเลกชัน NULL จะถูกส่งคืน
Pollfirst (); Polllast (); หากไม่มีองค์ประกอบในคอลเลกชัน NULL จะถูกส่งคืน
การคัดลอกรหัสมีดังนี้:
คลาสสาธารณะ LinkedListDemo {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
linkedList link = new LinkedList ();
link.add ("Java01");
link.add ("Java02");
link.add ("Java03");
link.add ("Java04");
ในขณะที่ (! link.isempty ()) {
System.out.println ((link.removelast ()));
-
-
-