首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Set<Set<String>> to String[][]

Java Set<Set<String>> to String[][]
EN

Stack Overflow用户
提问于 2012-12-17 05:48:06
回答 3查看 1.2K关注 0票数 1

如何将Set<Set<String>>转换为String[][]?我已经尝试过.toArray(new String[0]),但这似乎没有起到作用。

谢谢!克里斯蒂安

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-17 05:51:32

对于外部集合中的每个数组,将s转换为String[]并将其添加到数组的数组中。

我不知道有什么内置的方法可以从嵌套的集合中创建n维数组。

票数 4
EN

Stack Overflow用户

发布于 2012-12-17 05:51:48

循环遍历集合并创建数组

票数 1
EN

Stack Overflow用户

发布于 2012-12-17 13:01:40

试试下面的代码,它是有效的

代码语言:javascript
复制
package com.rais;

import java.util.HashSet;
import java.util.Set;

/**
 * @author Rais.Alam
 * @date Dec 17, 2012
 */
public class SetClient
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {

        Set<Set<String>> myArray = new HashSet<Set<String>>();

        Set<String> arr1 = new HashSet<String>();
        Set<String> arr2 = new HashSet<String>();
        Set<String> arr3 = new HashSet<String>();

        arr1.add("a-1");
        arr1.add("a-2");
        arr1.add("a-3");

        arr2.add("b-1");
        arr2.add("b-2");
        arr2.add("b-3");

        arr3.add("c-1");
        arr3.add("c-2");
        arr3.add("c-3");
        arr3.add("c-4");
        arr3.add("c-5");

        myArray.add(arr1);
        myArray.add(arr2);
        myArray.add(arr3);

        String[][] outputArray = convertSetOfSetToArray(myArray);

        for (String[] outerArr : outputArray)
        {
            for (String value : outerArr)
            {
                if (value != null)
                {
                    System.out.println(value);
                }
            }
        }

    }

    public static String[][] convertSetOfSetToArray(Set<Set<String>> myArray)
    {
        int secondArraySize = 0;

        /*
         * Looping array to get the size.
         */
        for (Set<String> innerSet : myArray)
        {
            if (innerSet.size() > secondArraySize)
            {
                secondArraySize = innerSet.size();
            }
        }
        // Declaring and initializing String arrays;
        String[][] outputArray = new String[myArray.size()][secondArraySize];

        int firstIndex = 0;
        int secondIndex = 0;

        for (Set<String> innerSet : myArray)
        {
            for (String value : innerSet)
            {
                outputArray[firstIndex][secondIndex] = value;
                secondIndex++;
            }
            secondIndex = 0;
            firstIndex++;
        }

        return outputArray;
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13905785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档