我需要List<User> userList
转换为UserData[]
for(int i = 0; i < userList.size(); i++){
userData[i] = userList.get(i);
}
虽然列表大小为1,但它始终返回null
。任何人都可以提供帮助。
答案 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;
}
}
}