Java 将ArrayList中的字符串对象转换为数组数组

Java 将ArrayList中的字符串对象转换为数组数组,java,multidimensional-array,arraylist,Java,Multidimensional Array,Arraylist,我有一个菜单结构,可以输出最喜欢的配置项列表 在视图示例中的Android SDK中,有一个视图示例,我想使用它,名为ExpandableList1.java。 为了使用视图,我必须传递一个String[]groups结构和一个String[]children结构 我可以使用groups.toArray将菜单对象中的字符串列表转换为数组。我遇到的问题是如何将收藏夹项转换为数组。最喜欢的项目是菜单对象中包含的数组列表 代码的相关部分粘贴在此处。首先,我们使用字符串数组调用MyExpandableL

我有一个菜单结构,可以输出最喜欢的配置项列表

在视图示例中的Android SDK中,有一个视图示例,我想使用它,名为ExpandableList1.java。 为了使用视图,我必须传递一个
String[]groups
结构和一个
String[]children
结构

我可以使用
groups.toArray
将菜单对象中的字符串列表转换为数组。我遇到的问题是如何将收藏夹项转换为数组。最喜欢的项目是菜单对象中包含的数组列表

代码的相关部分粘贴在此处。首先,我们使用字符串数组调用MyExpandableListAdapter:

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ArrayList<String> favouriteMenuList = Main.menuList.getFavouriteMenusFullPath();        

    mAdapter = new MyExpandableListAdapter(favouriteMenuList);
    setListAdapter(mAdapter);
    registerForContextMenu(getExpandableListView());
}

例如,假设您有一个
列表
,并且每个
菜单
都可以返回收藏夹的
列表
,我相信您希望:

String[][] children = new String[menus.size()][];
for (int i = 0; i < menus.size(); i++) {
    List<String> favourites = menus.get(i).getFavourites();
    children[i] = favourites.toArray(new String[favourites.size()]);
}
String[]children=新字符串[menus.size();
对于(int i=0;i
例如,假设您有一个
列表
,并且每个
菜单
都可以返回一个
列表
,我相信您希望:

String[][] children = new String[menus.size()][];
for (int i = 0; i < menus.size(); i++) {
    List<String> favourites = menus.get(i).getFavourites();
    children[i] = favourites.toArray(new String[favourites.size()]);
}
String[]children=新字符串[menus.size();
对于(int i=0;i
使用ArrayList(
res
)动态添加项目并将其转换为数组(
mString

ArrayList res=new ArrayList();
决议添加(“项目”);
字符串[]mString=(字符串[])res.toArray(新字符串[res.size()]);
使用ArrayList(
res
)动态添加项目并将其转换为数组(
mString

ArrayList res=new ArrayList();
决议添加(“项目”);
字符串[]mString=(字符串[])res.toArray(新字符串[res.size()]);

使用列表列表,然后迭代列表并使用
toArray
?由于性能原因,数组最好采用固定大小,因此最好计算数组的大小,使用该大小创建它,然后将子数组添加到其中?不相关@Eugene van der Merwe,既然您拥有Snowball.co.za,您是否可以为java应用程序提供托管服务?最好是GlassFish、Tomcat、JBoss?使用列表列表,然后迭代列表并使用
toArray
?因为出于性能原因,数组最好是固定大小的,所以计算数组的大小,使用该大小创建数组,然后将子数组添加到其中不是很好吗?不相关@Eugene van der Merwe,既然您拥有Snowball.co.za,您是否可以为java应用程序提供托管服务?最好是GlassFish,Tomcat,JBoss?这看起来很有希望,我会在接下来的三个小时内尝试,让你知道。太棒了!工作得很有魅力。谢谢。这看起来很有希望。我会在接下来的三个小时内尝试,并让你知道。太棒了!工作得很有魅力。非常感谢。
String[][] children = new String[menus.size()][];
for (int i = 0; i < menus.size(); i++) {
    List<String> favourites = menus.get(i).getFavourites();
    children[i] = favourites.toArray(new String[favourites.size()]);
}
ArrayList<String> res = new ArrayList<String>();
res.add("Item");
String[] mString = (String[]) res.toArray(new String[res.size()]);