如何將Set<Set<String>>
轉換爲String[][]
?我試過.toArray(new String[0])
,但這似乎並沒有辦法。Java Set <Set<String>> to String [] []
謝謝! 基督教
如何將Set<Set<String>>
轉換爲String[][]
?我試過.toArray(new String[0])
,但這似乎並沒有辦法。Java Set <Set<String>> to String [] []
謝謝! 基督教
對於外組中的每個Set<String> s
,轉換s
到String[]
並將其添加到您的數組的數組。
我不知道任何內置的方法來創建嵌套集合n維數組。
循環遍歷集合,並創建陣列下面的代碼
嘗試,它的工作原理
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;
}
}
這難道不痛苦的緩慢? –
你認爲Set.toArray()的實現在內部有什麼作用? JVM並不神奇。 – Philipp
@ChristianStewart爲什麼慢?如果你循環或者如果java在內部執行它,它沒有區別。 – AlexWien