我有一個List<User> userList
需要轉換爲UserData[]
ArrayList的用戶定義的類數組
for(int i = 0; i < userList.size(); i++){
userData[i] = userList.get(i);
}
它總是返回null
好像列表大小爲1。任何人都可以在此幫助。
我有一個List<User> userList
需要轉換爲UserData[]
ArrayList的用戶定義的類數組
for(int i = 0; i < userList.size(); i++){
userData[i] = userList.get(i);
}
它總是返回null
好像列表大小爲1。任何人都可以在此幫助。
類別可以被轉換爲陣列:
UserData[] userArray = userList.toArray(new UserData[userList.size()])
將不起作用。 ['toArray'](https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#toArray--)返回Object []' –
正確,對不起 –
會工作,但'新的UserData [0]'更快。除此之外,它是'userList.size()' –
只是另一種選擇,此時使用java8流的功率:
List<Foo> myList = Arrays.asList(new Foo(), new Foo(), new Foo(), new Foo());
Foo[] stringArray = myList.stream().toArray(Foo[]::new);
編輯:
流實際上不是必要的,這樣你仍然可以這樣做:
Foo[] fooArray = myList.toArray(new Foo[0])
沒有真正需要在這裏使用流。 Foo [] fooArray = myList.toArray(new Foo [0]); – LazerBanana
這裏是代碼試試這個
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;
}
}
}
地點的完整代碼 –
也許你的列表中包含'null'?另外,請告訴我們'userData []'和'userList'的聲明和初始化。 – domsson
顯示'return'語句 –