Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

แปลง ArrayList เป็น Array ใน Java

แปลง ArrayList เป็น Array ใน Java

เมื่อทำงานกับ ArrayList คุณอาจต้องการแปลงเป็นอาร์เรย์ หรือในทางกลับกัน เช่น มีรายการหุ้นในพอร์ตการลงทุนเก็บในอาร์เรย์ ต้องการแปลงเป็น ArrayList

ใน Java เมธอด toArray() ใช้แปลง ArrayList เป็นอาร์เรย์ ส่วน asList() ใช้แปลงอาร์เรย์เป็น ArrayList บทช่วยสอนนี้จะอธิบายพร้อมตัวอย่างทั้ง 2 ทิศทาง

อาร์เรย์และ ArrayList ใน Java

อาร์เรย์ใน Java ใช้จัดเก็บลำดับค่า 0 หรือมากกว่า เช่น รายการขนมในร้าน หรือออเดอร์ในคาเฟ่ อาร์เรย์เก็บชนิดข้อมูลได้ทุกประเภท: float, boolean, string

ตัวอย่างอาร์เรย์:

String[] names = new String[5];

ประกาศอาร์เรย์ names ขนาด 5 ค่า String

ก่อนใช้อาร์เรย์ ต้องประกาศขนาดล่วงหน้า และยากที่จะเปลี่ยนขนาดภายหลัง

นี่คือที่มาของ ArrayList - implementation ของ Java List interface ที่สร้างอาร์เรย์ขยายขนาดได้ (resizable array) เมื่อเพิ่ม/ลบสมาชิก ความจุจะปรับอัตโนมัติ ในบทนี้จะเรียก ArrayList ว่า "ลิสต์" สำหรับความสะดวก

ตัวอย่าง ArrayList:

ArrayList<String> names = new ArrayList<>();

ประกาศ ArrayList names เก็บ String จำนวนไม่จำกัด

แปลง List เป็น Array

ใช้เมธอด list.toArray() เพื่อแปลงลิสต์เป็นอาร์เรย์

สมมติมีลิสต์หุ้นในพอร์ตเกษียณอายุ เก็บใน ArrayList ต้องการแปลงเป็นอาร์เรย์เพราะไม่ตั้งใจเพิ่มหุ้นใหม่:

import java.util.List; 
import java.util.Arrays; 
import java.util.ArrayList; 

class Main { 
    public static void main(String[] args) { 
        List<String> portfolio = new ArrayList<String>(); 
        portfolio.add("BAM"); 
        portfolio.add("GOOGL"); 
        portfolio.add("SBUX"); 
        String[] newPortfolio = new String[portfolio.size()]; 
        portfolio.toArray(newPortfolio); 
        System.out.println("Portfolio: " + Arrays.toString(newPortfolio)); 
    } 
}

ผลลัพธ์:

Portfolio: [BAM, GOOGL, SBUX]

อธิบายโค้ด:

  1. Import 3 ไลบรารี: List, Arrays, ArrayList
  2. ประกาศ ArrayList portfolio เพิ่มค่า 3 ค่า: BAM, GOOGL, SBUX
  3. สร้างอาร์เรย์ newPortfolio ขนาดเท่ากับ portfolio.size() (คือ 3)
  4. ใช้ toArray() แปลง portfolio ให้เป็นอาร์เรย์ แล้วกำหนดให้ newPortfolio
  5. ใช้ Arrays.toString() แปลงอาร์เรย์เป็นข้อความ แล้วพิมพ์

แปลง Array เป็น List

ใช้เมธอด asList() เพื่อแปลงอาร์เรย์เป็น ArrayList

กลับไปที่ตัวอย่างพอร์ตการลงทุน สมมติมีอาร์เรย์หุ้น ต้องการแปลงเป็น ArrayList:

import java.util.Arrays; 
import java.util.List; 

class Main { 
    public static void main(String[] args) { 
        String[] portfolio = {"BAM", "GOOGL", "SBUX"}; 
        List<String> newPortfolio = Arrays.asList(portfolio); 
        System.out.println("New portfolio: " + newPortfolio); 
    } 
}

ผลลัพธ์:

New portfolio: [BAM, GOOGL, SBUX]

อธิบาย: Import Arrays และ List ประกาศอาร์เรย์ portfolio ใช้ Arrays.asList() แปลงเป็นลิสต์ แล้วเก็บใน newPortfolio พิมพ์ผลลัพธ์

สรุป

เมธอด toArray() ใช้แปลงลิสต์เป็นอาร์เรย์ ส่วน asList() ใช้แปลงอาร์เรย์เป็นลิสต์ บทช่วยสอนนี้อธิบายวิธีแปลงข้อมูลระหว่าง ArrayList และอาร์เรย์ พร้อมอธิบายความแตกต่างหลักของทั้งสอง ตอนนี้คุณพร้อมแปลงข้อมูลสลับกันได้อย่างมืออาชีพแล้ว!