java - 如何将 Set<String> 转换为 String[]?

标签 java

我需要获得 String[]Set<String> ,但我不知道该怎么做。以下失败:

Map<String, ?> myMap = gpxlist.getAll();
Set<String> myset = myMap.keySet();
String[] GPXFILES1 = (String[]) myset.toArray(); // Here it fails.

如何修复它以使其正常工作?

最佳答案

使用 Set#toArray(IntFunction<T[]>) 采用 IntFunction 的方法作为生成器。

String[] GPXFILES1 = myset.toArray(String[]::new);

如果您还没有使用 Java 11,请使用 Set#toArray(T[]) 方法采用相同大小的类型化数组参数。

String[] GPXFILES1 = myset.toArray(new String[myset.size()]);

虽然仍然不在 Java 11 上,但您不能保证 myset在转换为数组的时候是不可修改的,那么最好指定一个空类型的数组。

String[] GPXFILES1 = myset.toArray(new String[0]);

关于java - 如何将 Set<String> 转换为 String[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5982447/

相关文章:

java - Hibernate JPA 持久性 - 如何在插入/保存/合并后获取新的实体标识符

java - 如何让我的第一个 servlet 工作?

java - 网络 : back propogate pressure in channel handler pipeline to slow down sender

java - 带有 Android 应用程序的多频段应用程序

java - 启动 Activity 时,应用程序可能在其主线程上做了太多工作

java - 插入排序的空间复杂度不应该是O(N)吗?

java - 错误:(20) Tag <uses-permission> attribute name has invalid character ' '

java - 如何在 Java 中使用 Clock 类从当前日期减去 2 个月

java - 为什么jdk 1.5无法加载使用maven创建的jar? (版本号错误)

java - 如何让随机数学任务的解变得动态?