ArrayList到用户定义的类数组

时间:2017-06-01 13:47:17

标签: java arrays list

我需要List<User> userList转换为UserData[]

for(int i = 0; i < userList.size(); i++){
    userData[i] = userList.get(i);
}

虽然列表大小为1,但它始终返回null。任何人都可以提供帮助。

3 个答案:

答案 0 :(得分:3)

集合可以转换为数组:

UserData[] userArray = userList.toArray(new UserData[userList.size()])

答案 1 :(得分:3)

只是另一种选择,这次使用java8流的强大功能:

List<Foo> myList = Arrays.asList(new Foo(), new Foo(), new Foo(), new Foo());
Foo[] stringArray = myList.stream().toArray(Foo[]::new);

编辑:

实际上没有必要使用Stream,所以你仍然可以这样做:

Foo[] fooArray = myList.toArray(new Foo[0])

答案 2 :(得分:0)

这是代码试试这个

import java.util.ArrayList;

public class ArrayListTest {

static UserData[] userdata = new UserData[3];

public static void main(String[] args) {
    ArrayListTest alt = new ArrayListTest();
    ArrayList<UserData> users = alt.arrayTest();

    for (int i = 0; i < users.size(); i++) {
        userdata[i] = users.get(i);
    }

    for (UserData ud : userdata) {
        System.out.println("User Name " + ud.getName());

    }

}

private ArrayList<UserData> arrayTest() {
    ArrayList<UserData> userList = new ArrayList<>();
    userList.add(new UserData("user 1"));
    userList.add(new UserData("user 2"));
    userList.add(new UserData("user 3"));
    return userList;
}

private class UserData {

    private final String name;

    public UserData(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

}

}

this is the output screen