1

どうすればaをに変換できSet<Set<String>>ますString[][]か?私は試し.toArray(new String[0])ましたが、これではうまくいかないようです。

ありがとう!キリスト教徒

4

3 に答える 3

4

Set<String> s外側のセットのそれぞれについて、配列の配列に変換sして追加します。String[]

ネストされたコレクションからn次元配列を作成するための組み込みの方法はわかりません。

于 2012-12-16T21:51:32.293 に答える
1

セットをループして配列を作成します

于 2012-12-16T21:51:48.447 に答える
0

以下のコードを試してください、それは動作します

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;
    }

}
于 2012-12-17T05:01:40.130 に答える