การแปลง List<Integer>
เป็น List<String>
: วิธีที่มีประสิทธิภาพใน Java
ในการเขียนโปรแกรม Java มักจะจำเป็นต้องแปลงประเภทข้อมูลให้เหมาะสมกับความต้องการที่หลากหลาย สถานการณ์ที่พบบ่อยคือเมื่อคุณมีรายการของจำนวนเต็มซึ่งแทนด้วย List<Integer>
และคุณต้องการแปลงสิ่งนี้เป็นรายการของสตริง List<String>
การแปลงนี้อาจมีความสำคัญสำหรับการจัดรูปแบบการส่งออกข้อมูลหรือเมื่อทำงานกับ API ที่ต้องการข้อมูลประเภทสตริง
ปัญหาที่อยู่ในมือ
สมมติว่าคุณมี List<Integer>
ที่เต็มไปด้วยค่า integer และคุณต้องการ List<String>
ที่มีการแสดงผลในรูปแบบสตริงของแต่ละค่า integer นั้น แม้ว่าการวนซ้ำในรายการและเรียกใช้ String.valueOf()
บนจำนวนเต็มแต่ละตัวจะตรงไปตรงมา แต่การทำเช่นนี้อาจดูยุ่งยาก และคุณอาจกำลังมองหาวิธีที่ อัตโนมัติ มากขึ้นในการทำการแปลงนี้
วิธีแก้ปัญหา: การแปลงด้วยมือ
แม้ว่าการแปลง List<Integer>
เป็น List<String>
อาจดูเหมือนต้องการวิธีที่ซับซ้อน แต่การวนซ้ำด้วยมือยังคงเป็นหนึ่งในวิธีที่มีประสิทธิภาพและชัดเจนที่สุดในการทำการแปลงนี้ นี่คือวิธีที่จัดระเบียบเพื่อทำความเข้าใจวิธีนี้:
ขั้นตอนการทำงาน
-
เริ่มต้นรายการของคุณ: เริ่มด้วย
List<Integer>
ที่มีอยู่ ซึ่งเราจะเรียกว่าoldList
. -
เตรียมรายการใหม่: สร้าง
List<String>
ใหม่ ซึ่งเราจะเรียกว่าnewList
การกำหนดขนาดของรายการใหม่ล่วงหน้าเป็นเรื่องที่ดี เพื่อเพิ่มประสิทธิภาพการทำงาน โดยควรมีขนาดใกล้เคียงกับoldList
เพื่อหลีกเลี่ยงการปรับขนาด -
วนซ้ำผ่านรายการเก่า: ใช้ลูปเพื่อไปยังจำนวนเต็มแต่ละตัวใน
oldList
โดยการแปลงแต่ละตัวให้เป็นการแสดงผลในรูปแบบสตริงและเพิ่มเข้าไปในnewList
ตัวอย่างโค้ด
นี่คือวิธีที่ขั้นตอนข้างต้นแปลเป็นโค้ด Java:
List<Integer> oldList = ...; // รายการของจำนวนเต็มที่คุณมีอยู่
/* กำหนดขนาดของรายการล่วงหน้าเพื่อป้องกันการปรับขนาด. */
List<String> newList = new ArrayList<>(oldList.size());
for (Integer myInt : oldList) {
newList.add(String.valueOf(myInt));
}
คำอธิบายโค้ด
- การเริ่มต้น:
oldList
ถูกกำหนดไว้แต่ไม่แสดงรายละเอียด – คุณมักจะต้องดึงข้อมูลนี้จากแหล่งข้อมูลหรือสร้างขึ้น - การสร้างรายการ: เราสร้าง
newList
ด้วยความจุเริ่มต้นเท่ากับoldList.size()
เพื่อเพิ่มประสิทธิภาพ - ลูปสำหรับ: ลูปนี้จะวนผ่าน
Integer
ทุกตัวในoldList
แปลงให้เป็นString
และเพิ่มเข้าไปในnewList
โดยใช้String.valueOf()
สรุป
แม้ว่าหลายคนอาจคิดว่าควรมีวิธีที่ซับซ้อนหรือ “อัตโนมัติ” มากกว่าสำหรับการแปลง List<Integer>
เป็น List<String>
แต่การวนซ้ำด้วยยังคงเป็นวิธีที่แข็งแกร่ง อ่านง่าย และมีประสิทธิภาพ โดยการปฏิบัติตามวิธีการที่เรียบง่ายและมีโครงสร้าง คุณสามารถทำภารกิจนี้ให้เสร็จสิ้นได้ด้วยความยุ่งยากน้อยที่สุดและความชัดเจนสูงสุด
สำหรับผู้ที่ต้องการสำรวจความสามารถของ Java ให้ลึกซึ้งยิ่งขึ้น ลองสำรวจตัวเลือกเช่น stream แต่วิธีคลาสสิกนี้ให้ความเข้าใจที่ชัดเจนเกี่ยวกับการแปลงประเภทในรายการ
ตอนนี้คุณมีวิธีแก้ปัญหาที่ปฏิบัติได้สำหรับการแปลงรายการใน Java แล้ว! ขอให้สนุกกับการเขียนโค้ด!