ฉันพบปัญหาแปลก ๆ เมื่อใช้ตัววนซ้ำ Java
ในฟังก์ชันบางอย่างจะได้รับวัตถุที่ทำซ้ำได้ชื่อ filelist
และฉันทำสิ่งต่อไปนี้:
System.out.println("First iteration:");
for(Text t : filelist) System.out.println(t);
System.out.println("Second iteration:");
for(Text t : filelist) System.out.println(t);
และผลลัพธ์คือ:
First iteration:
file2.txt
file1.txt
file1.txt
Second iteration:
filelist
เป็นประเภท Iterable<Text>
ฉันกำลังทำงานกับแผนที่ Hadoop/ลดเฟรมเวิร์ก
คำถามของฉันคือ ทำไมรายการไฟล์จึงว่างเปล่าในวงที่สอง ในเมื่อฉันไม่ได้เปลี่ยนมันในวงแรก
filelist
เป็นประเภทใด - person Tunaki   schedule 16.01.2016System.out.println(filelist.getClass().getName());
และบอกว่าคุณได้อะไร ที่กล่าวว่าไม่ว่าจะเป็นประเภทใดก็ตาม เว้นแต่ว่าโครงสร้างข้อมูลพื้นฐานจะได้รับการแก้ไขไปพร้อมๆ กัน สิ่งนี้ไม่ควรเกิดขึ้น - person JB Nizet   schedule 16.01.2016