"สวัสดี อามีโก้"
"นี่ ริชชี่"
"Ellie บอกฉันว่าคุณต้องการตัวอย่างคอลเล็กชันเพิ่มเติม ฉันจะให้บางส่วน นี่คือรายการคอลเล็กชันและอินเทอร์เฟซ:"
อินเตอร์เฟซ | คลาส / การนำไปใช้ | คำอธิบาย |
---|---|---|
รายการ | รายการอาร์เรย์ | รายการ |
รายการที่เชื่อมโยง | รายการ | |
เวกเตอร์ | เวกเตอร์ | |
ซ้อนกัน | ซ้อนกัน | |
ชุด | ชุดแฮช | ชุด |
ชุดต้นไม้ | ชุด | |
SortedSet | ชุดเรียง | |
แผนที่ | แฮชแมป | แผนที่/พจนานุกรม |
แผนที่ต้นไม้ | แผนที่/พจนานุกรม | |
SortedMap | เรียงพจนานุกรม | |
แฮชเทเบิล | ตารางแฮช |
"อืม เยอะทีเดียว สี่รายการ สามชุด และสี่แผนที่"
"ใช่ ทั้งหมดนี้เป็นการนำไปใช้ที่แตกต่างกันของอินเทอร์เฟซรายการ ชุด และแผนที่"
"ความแตกต่างระหว่างการใช้งานเหล่านี้คืออะไร"
"นั่นคือสิ่งที่เราจะพูดถึงในวันนี้ อดทนหน่อยนะ"
“คุณมีคำถามอะไรอีกไหม”
" ฉันรู้วิธีแสดงรายการบนหน้าจอ ฉันจะแสดงชุดหรือแผนที่ได้อย่างไร"
"องค์ประกอบของรายการมีลำดับที่ตั้งไว้ ดังนั้นคุณจึงสามารถใช้ดัชนีเพื่อแสดงได้ สำหรับชุดหรือแผนที่ ไม่มีลำดับเฉพาะ อันที่จริง ลำดับขององค์ประกอบสามารถเปลี่ยนแปลงได้เมื่อรายการถูกลบหรือสร้างใหม่ มีการเพิ่มรายการ"
"อัศจรรย์."
"นี่คือเหตุผลที่อ็อบเจกต์พิเศษที่เรียกว่าiteratorsถูกประดิษฐ์ขึ้นเพื่อทำงานร่วมกับองค์ประกอบคอลเลกชั่น พวกมันให้คุณดูองค์ประกอบทั้งหมดในคอลเลกชั่น แม้ว่ามันจะมีแค่ชื่อแทนดัชนี (แผนที่) หรือไม่มีชื่อหรือดัชนีก็ตาม ( ชุด)."
"นี่คือตัวอย่างบางส่วน:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
// Get an iterator for the set
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) // Check if there is another element
{
// Get the current element and move to the next one
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("Rain");
list.add("In");
list.add("Spain");
Iterator<String> iterator = list.iterator();// Get an iterator for the list
while (iterator.hasNext()) // Check if there is another element
{
// Get the current element and move to the next one
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
// All elements are stored in pairs
Map<String, String> map = new HashMap<String, String>();
map.put("first", "Rain");
map.put("second", "In");
map.put("third", "Spain");
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext())
{
// Get a key-value pair
Map.Entry<String, String> pair = iterator.next();
String key = pair.getKey(); // Key
String value = pair.getValue(); // Value
System.out.println(key + ":" + value);
}
}
"ว้าว ฉันสงสัยว่ามันหมายความว่าอะไร"
"จริง ๆ แล้วค่อนข้างง่าย อย่างแรก เราได้รับวัตถุพิเศษ ตัววนซ้ำ จากคอลเลกชัน ตัววนซ้ำมีเพียงสองวิธี
1. เมธอด next() จะส่งกลับองค์ประกอบถัดไปในคอลเลกชัน
2. เมธอด hasNext() ตรวจสอบว่ายังมีองค์ประกอบที่ยังไม่ถูกส่งคืนโดย next() หรือไม่"
“ตกลง ฉันคิดว่ามันชัดเจนขึ้นแล้ว ให้ฉันพยายามพูดซ้ำกลับไปว่าฉันเข้าใจอะไร”
"ดังนั้น... ขั้นแรก เราต้องเรียกใช้เมธอด iterator() ในคอลเล็กชันเพื่อรับวัตถุตัววนซ้ำวิเศษนี้"
"จากนั้นเราจะได้รับองค์ประกอบทีละรายการตราบเท่าที่ยังเหลืออยู่ เราได้รับองค์ประกอบถัดไปในคอลเลกชันโดยเรียก next() และเราตรวจสอบว่ายังมีองค์ประกอบในคอลเลกชันหรือไม่โดยเรียก hasNext() บน iterator ถูกต้องหรือไม่"
“ใช่ค่ะ ไม่มากก็น้อย แต่รอส่วนดี”
"Java มีสัญกรณ์ชวเลขสำหรับการทำงานกับ iterators ตามรูปแบบของwhileและforมีการเพิ่มคำสั่งพิเศษอีกหนึ่งคำสั่ง: for eachมันถูกระบุโดยใช้คำสำคัญสำหรับ "
"คำสั่ง for-each ใช้สำหรับการทำงานกับคอลเลกชั่นและคอนเทนเนอร์เท่านั้น มันใช้ตัววนซ้ำโดยปริยาย แต่เราจะมองเห็นเฉพาะองค์ประกอบที่ส่งคืนเท่านั้น"
"ให้ฉันแสดงวิธีลองมือและชวเลขในการทำงานกับตัววนซ้ำ:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String text = iterator.next();
System.out.println(text);
}
}
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
for (String text : set)
{
System.out.println(text);
}
}
"โปรดทราบว่าคำที่เน้นด้วยสีแดงหรือสีเขียวนั้นหายไปในส่วนที่ถูกต้อง อันที่จริง บรรทัดสามบรรทัดจะถูกแทนที่ด้วยบรรทัดเดียว:"
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String text = iterator.next();
for (String text : set)
"มันดูงดงาม ฉันชอบแบบนี้มากกว่า"
"ลองดูตัวอย่างแบบชวเลขข้างต้น:"
public static void main(String[] args)
{
Set<String> set = new HashSet<String>();
set.add("Rain");
set.add("In");
set.add("Spain");
for (String text : set)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("Rain");
list.add("In");
list.add("Spain");
for (String text : list)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
Map<String, String> map = new HashMap<String, String>();
map.put("first", "Rain");
map.put("second", "In");
map.put("third", "Spain");
for (Map.Entry<String, String> pair : map.entrySet())
{
String key = pair.getKey(); // Key
String value = pair.getValue(); // Value
System.out.println(key + ":" + value);
}
}
“ตอนนี้คุณกำลังพูด!”
"ฉันดีใจที่คุณชอบมัน."
GO TO FULL VERSION