Java 把字符串集转换为字符串数组
给定一个字符串集,任务是在Java中把这个字符串集转换成一个字符串数组。
例子。
Input : Set<String>: ["ForGeeks", "A Computer Portal", "Geeks"]
Output : String[]: ["ForGeeks", "A Computer Portal", "Geeks"]
Input : Set<String>: ["G", "e", "k", "s"]
Output : String[]: ["G", "e", "k", "s"]
建议:请先在 {IDE}上尝试你的方法,然后再继续解决。
- 方法 1: Naive 方法.
- 获取字符串集。
- 创建一个空的字符串数组,其大小与字符串集的大小相同。
- 使用高级for循环,将字符串集的每个元素复制到字符串数组中。
- 返回或打印字符串数组。
下面是上述方法的实现。
// Java program to convert
// Set of Strings to Array of Strings
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
class GFG {
// Function to convert Set<String> to String[]
public static String[] convert(Set<String> setOfString)
{
// Create String[] of size of setOfString
String[] arrayOfString = new String[setOfString.size()];
// Copy elements from set to string array
// using advanced for loop
int index = 0;
for (String str : setOfString)
arrayOfString[index++] = str;
// return the formed String[]
return arrayOfString;
}
public static void main(String[] args)
{
// Get the Set of String
Set<String>
setOfString = new HashSet<>(
Arrays.asList("Geeks",
"ForGeeks",
"A Computer Portal"));
// Print the setOfString
System.out.println("Set of String: "
+ setOfString);
// Convert Set to String array
String[] arrayOfString = convert(setOfString);
// Print the arrayOfString
System.out.println("Array of String: "
+ Arrays.toString(arrayOfString));
}
}
输出:
Set of String: [ForGeeks, A Computer Portal, Geeks]
Array of String: [ForGeeks, A Computer Portal, Geeks]
- 方法 2 : 使用 Set.toArray() 方法.
- 获取字符串集。
- 使用Set.toArray()方法将字符串集转换为字符串数组,传递一个 空的字符串类型的数组。JVM将为字符串数组分配内存。
- 返回或打印字符串数组。
下面是上述方法的实现。
// Java program to convert
// Set of Strings to Array of Strings
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
class GFG {
// Function to convert Set<String> to String[]
public static String[] convert(Set<String> setOfString)
{
// Create String[] from setOfString
String[] arrayOfString = setOfString
.toArray(new String[0]);
// return the formed String[]
return arrayOfString;
}
public static void main(String[] args)
{
// Get the Set of String
Set<String>
setOfString = new HashSet<>(
Arrays.asList("Geeks",
"ForGeeks",
"A Computer Portal"));
// Print the setOfString
System.out.println("Set of String: "
+ setOfString);
// Convert Set to String array
String[] arrayOfString = convert(setOfString);
// Print the arrayOfString
System.out.println("Array of String: "
+ Arrays.toString(arrayOfString));
}
}
输出:
Set of String: [ForGeeks, A Computer Portal, Geeks]
Array of String: [ForGeeks, A Computer Portal, Geeks]
- 方法 3 : 使用 Arrays.copyOf() 方法.
- 获取字符串集。
- 使用Arrays.copyOf()方法将字符串集转换为字符串数组,方法是将字符串集、字符串集的大小和所需的输出类型作为
String[]
传递。 - 返回或打印字符串数组。
下面是上述方法的实现。
// Java program to convert
// Set of Strings to Array of Strings
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
class GFG {
// Function to convert Set<String> to String[]
public static String[] convert(Set<String> setOfString)
{
// Create String[] from setOfString
String[] arrayOfString = Arrays
.copyOf(
setOfString.toArray(),
setOfString.size(),
String[].class);
// return the formed String[]
return arrayOfString;
}
public static void main(String[] args)
{
// Get the Set of String
Set<String>
setOfString = new HashSet<>(
Arrays.asList("Geeks",
"ForGeeks",
"A Computer Portal"));
// Print the setOfString
System.out.println("Set of String: "
+ setOfString);
// Convert Set to String array
String[] arrayOfString = convert(setOfString);
// Print the arrayOfString
System.out.println("Array of String: "
+ Arrays.toString(arrayOfString));
}
}
输出:
Set of String: [ForGeeks, A Computer Portal, Geeks]
Array of String: [ForGeeks, A Computer Portal, Geeks]
- 方法 4 : 使用 System.arraycopy() 方法.
- 获取字符串集。
- 使用System.arraycopy()方法将字符串集转换为字符串数组。
- 返回或打印字符串数组。
下面是上述方法的实现。
// Java program to convert
// Set of Strings to Array of Strings
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
class GFG {
// Function to convert Set<String> to String[]
public static String[] convert(Set<String> setOfString)
{
// Create String[] of size of setOfString
String[] arrayOfString = new String[setOfString.size()];
// Convert setOfString to String[]
System.arraycopy(
// source
setOfString.toArray(),
// from index to be copied from Source
0,
// Destination
arrayOfString,
// From index where to be copied in Destination
0,
// Number of elements to be copied
setOfString.size());
// return the formed String[]
return arrayOfString;
}
public static void main(String[] args)
{
// Get the Set of String
Set<String>
setOfString = new HashSet<>(
Arrays.asList("Geeks",
"ForGeeks",
"A Computer Portal"));
// Print the setOfString
System.out.println("Set of String: "
+ setOfString);
// Convert Set to String array
String[] arrayOfString = convert(setOfString);
// Print the arrayOfString
System.out.println("Array of String: "
+ Arrays.toString(arrayOfString));
}
}
输出:
Set of String: [ForGeeks, A Computer Portal, Geeks]
Array of String: [ForGeeks, A Computer Portal, Geeks]
- 方法 5 : 使用 Java 8 Streams.
- 获取字符串集。
- 使用stream()方法将字符串集转换为流。
- 使用toArray()方法将流转换为
String[]
。 - 返回或打印字符串数组。
下面是上述方法的实现。
// Java program to convert
// Set of Strings to Array of Strings
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
class GFG {
// Function to convert Set<String> to String[]
public static String[] convert(Set<String> setOfString)
{
// Create String[] from setOfString
String[] arrayOfString = setOfString
// Convert Set of String
// to Stream<String>
.stream()
// Convert Stream<String>
// to String[]
.toArray(String[] ::new);
// return the formed String[]
return arrayOfString;
}
public static void main(String[] args)
{
// Get the Set of String
Set<String>
setOfString = new HashSet<>(
Arrays.asList("Geeks",
"ForGeeks",
"A Computer Portal"));
// Print the setOfString
System.out.println("Set of String: "
+ setOfString);
// Convert Set to String array
String[] arrayOfString = convert(setOfString);
// Print the arrayOfString
System.out.println("Array of String: "
+ Arrays.toString(arrayOfString));
}
}
输出:
Set of String: [ForGeeks, A Computer Portal, Geeks]
Array of String: [ForGeeks, A Computer Portal, Geeks]