[Java 8] Cách chuyển đổi mảng các kiểu dữ liệu nguyên thủy sang List

Chào các bạn, trong bài viết này, chúng ta sẽ cùng tìm hiểu về Cách chuyển đổi mảng các kiểu dữ liệu nguyên thủy (primitive array) sang List

Đoạn code chuyển đổi từ một mảng nguyên thủy int[] sang một List<Integer>.

Java:
    int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    List<Integer> list = new ArrayList<>();
    for (int i : number) {
        list.add(i);
    }
Trong Java 8 bạn có thể sử dụng Stream APIs để thực hiện chuyển đổi như thế này.

Java:
    List<Integer> list = Arrays.stream(number).boxed().collect(Collectors.toList());
1. Ví dụ cơ bản
Ví dụ đầy đủ này để chuyển đổi một mảng nguyên thủy sang List.

ArrayExample1.java
Java:
package com.mkyong.array;

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

public class ArrayExample1 {

    public static void main(String[] args) {

        int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        List<Integer> list = convertIntArrayToList(number);
        System.out.println("list : " + list);

    }

    private static List<Integer> convertIntArrayToList(int[] input) {

        List<Integer> list = new ArrayList<>();
        for (int i : input) {
            list.add(i);
        }
        return list;

    }
}
Kết quả
Java:
list : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Ghi chú
Bạn không thể sử dụng Arrays.asList để chuyển đổi trực tiếp, bởi vì có vấn đề trong việc ép kiểu.
Java:
int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// No, the return type is not what we want
List<int[]> ints = Arrays.asList(number);
2. Java 8 Stream
Ví dụ đầy đủ về Java 8 stream để chuyển đổi một mảng Array nguyên thủy thành một List.

ArrayExample2.java
Java:
package com.mkyong.array;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class ArrayExample2 {

    public static void main(String[] args) {

        int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        // IntStream.of or Arrays.stream, same output
        //List<Integer> list = IntStream.of(number).boxed().collect(Collectors.toList());
        
        List<Integer> list = Arrays.stream(number).boxed().collect(Collectors.toList());
        System.out.println("list : " + list);

    }
}
Kết quả
Code:
list : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Cám ơn các bạn đã theo dõi. Hẹn gặp lại các bạn trong các bài viết sau :)

Bài viết tham khảo tại: https://mkyong.com/java/java-how-to-convert-a-primitive-array-to-list
 

Bình luận