1

我正在尝试从linkedhashset 中检索随机元素。下面是我的代码,但每次都给我例外。

private static void generateRandomUserId(Set<String> userIdsSet) {

    Random rand = new Random(System.currentTimeMillis());
    String[] setArray = (String[]) userIdsSet.toArray();
    for (int i = 0; i < 10; ++i) {
        System.out.println(setArray[rand.nextInt(userIdsSet.size())]);
    }
}

以下是我得到的例外 -

java.lang.ClassCastException: [Ljava.lang.Object; incompatible with [Ljava.lang.String;

谁可以帮我这个事?有没有更好的方法来做到这一点?

4

1 回答 1

11

尝试这个:

String[] setArray = userIdsSet.toArray(new String[userIdsSet.size()]);

toArray不带参数的方法返回一个Object[]不能转换为 a 的方法String[]另一个版本返回一个类型化数组。

于 2013-06-19T21:31:46.093 回答