2011-12-08 93 views
1

我必须从方法返回对象数组。对象最初保存在对象列表类型中。我无法将对象列表中的值分配给对象数组。我怎么做。这里是我的代码:如何将对象类型列表转换为对象数组

public User[] getUser() { 

    User[] users = null; 

    Session session = HibernateUtil.getSessionFactory().openSession(); 
    List<User> users = session.createQuery("from User").list(); 
    for (Iterator<User> iter = users.iterator(); iter.hasNext();) { 
     User user = iter.next(); 
     //Here I need to assign User type object from list to array of objects 
    } 
    return users; // returning nothing so far 
} 
+0

只是users.ToArray()哦......等待......不......不要介意 – Jeff

回答

3

使用名单的toArray方法方式:

return users.toArray(new User[users.size]); 
1

这会解决你的问题吗?

usersList = users.toArray(new User[users.size()]); 

通过你在代码中使用users两次(如数组和列表)

+0

轻微性能的事情是将传递一个'新用户[users.size()]'而不是。否则,'toArray'会将您新分配的长度为零的数组看到它不够大,并分配第二个长度合适的数组。如果使用'users.size()'实例化'User []',那么可以节省一个数组分配。 – yshavit

4

来回切换从List s到阵列,反之亦然可以用方法完成

User[] array = users.toArray(new User[usersList.size()]);//from list to array 
List<User> usersList = Arrays.asList(userArray);//from array to list 

见这些方法的Javadoc(List#toArrayArrays#asList)了解更多信息

+0

小错字:'new User(usersList ...)'应该是'new User [](usersList ...)'。我试图进行编辑,但它不会让我做出这么小的改变。 – yshavit

+0

谢谢。我调整了它 – Robin

相关问题