เผอิญ วันนี้ผมได้ใช้เมธอด ‘toArray(T[] a)’ เลยนึกถึงวันเก่าๆ สมัยหัดเขียน Java ตอนนั้นงงมากๆ ครับว่าอะไรคือ T
แล้วเราจะใช้เมธอดที่ว่านี้อย่างไร

ตามมาดูกันเลยครับ

เมธอด toArray(T[] a) ที่รีเทิร์นค่าT[] กลับมานั้น ตัว T หมายถึง Type หรือชนิดของออปเจคที่เราจะใส่เข้าไปครับ

ส่วนวิธีการใช้คือ

เราจะทำการสร้าง อเรยย์ของออปเจค์ขึ้นมาครับ Integer[] integerArray โดยให้มีขนาดเท่ากับ
ขนาดของ ArrayList จากนั้น ส่้ง อเรยย์อันนี้เข้าไปเพื่อก้อปปี้ค่าจาก ArrayList ต้นแบบมาใส่ครับ
ดังโค้ดนี้

        ArrayList<Integer> arrayOfInteger = new ArrayList<Integer>();
        arrayOfInteger.add(1);
        arrayOfInteger.add(2);
        arrayOfInteger.add(3);
        arrayOfInteger.add(4);
 
        System.out.println("Contents of list: " + arrayOfInteger);
 
        Integer[] integerArray = new Integer[arrayOfInteger.size()];
        integerArray = arrayOfInteger.toArray(integerArray);

ซึ่ง ลองเข้าไปดูโค้ดของ toArray(T[] a) จะเป็นดังนี้ครับ คือการก้อปปี้ค่าใส่ให้กับ อเรยย์ที่ส่งไปให้จริงๆ

    public <T> T[] toArray(T[] a) {
        if (a.length < size)
            // Make a new array of a's runtime type, but my contents:
            return (T[]) Arrays.copyOf(elementData, size, a.getClass());
	System.arraycopy(elementData, 0, a, 0, size);
        if (a.length > size)
            a[size] = null;
        return a;
    }

Last 5 posts by aErOnz`

Leave a Reply