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

标签 java multidimensional-array arraylist

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

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

使用groups.toArray将字符串列表从菜单对象转换为数组没有问题。我遇到的问题是将 Collection 夹项目转换为数组数组。最喜欢的项目是菜单对象中包含的数组列表。

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

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

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

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

Next MyExpandableListAdapter 及其构造函数显示数组转换发生的位置:

public class MyExpandableListAdapter extends BaseExpandableListAdapter {
    // Sample data set.  children[i] contains the children (String[]) for groups[i].
    // private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" };
    private String [] groups;
    private String[][] children = {
             { "Arnold", "Barry", "Chuck", "David" },
            { "Ace", "Bandit", "Cha-Cha", "Deuce" },
            { "Fluffy", "Snuggles" },
            { "Goldy", "Bubbles" }
    };        

    public MyExpandableListAdapter(ArrayList<String> groups) {          
        this.groups = groups.toArray(new String[groups.size()]);
    }

正如您在上面的代码片段中看到的,转换为 String[] groups 没有问题。我的想法是迭代菜单对象,提取 Collection 夹列表,然后??由于数组大小是固定的,我如何在 Java 中构建动态数组。

这是我想到的外循环:

public ArrayList<FavouritesObject> getFavouriteItems() {
    ArrayList<FavouritesObject> favouritesList = new ArrayList<FavouritesObject>();

    for (MenuObject m : allMenusList) {
        if (m.isFavourite) {
            favouritesList.add(m.getFavouriteItems());
        }           
    }
    return favouritesList;
}

最佳答案

使用 ArrayList (res) 动态添加项目并将其转换为数组 (mString)。

ArrayList<String> res = new ArrayList<String>();
res.add("Item");
String[] mString = (String[]) res.toArray(new String[res.size()]);

关于java - 将 ArrayList 中的字符串对象转换为数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5336925/

相关文章:

java - 如何使用 Jlex 和 Cup 工具

java - Hibernate @Formula 注释不起作用

java - 如何在JAVA或SCALA中使用AES 256 CBC提取enc加密数据?

python - 查找多维数组中所有 "neighbors"的元素,环绕边界

Python:随机插入多行到3D numpy数组中

java - 如何用eclipse缩进流畅的界面模式 "correctly"?

c - 如何在C中重新排序n维矩阵的维度? (类似于排列(A,[2 :n 1]) in Matlab )

Java:将 ArrayList<Byte> 转换为 ByteBuffer

c# - 对列表框中的项目列表进行排序

java - 从另一个类中的 arrayList 获取元素