gpt4 book ai didi

java - 为 double 组获取 Collections.shuffle() 时出现问题

转载 作者:行者123 更新时间:2023-12-02 07:40:25 25 4
gpt4 key购买 nike

我正在尝试对 java bean 中的 double 组进行洗牌,以便在 JSP 文件中使用。

在我的 java bean 的默认构造函数中,我有:

amounts  = new double[] {0.5, 1, 1.5, 2, 2.5. 3, 3.5, 4};

Collections.shuffle(Arrays.asList(amounts));

我可以很好地调用 bean 的方法,但由于某种原因,金额数组保持不变,因此它要么不进行改组,要么默认构造函数不执行。没有抛出错误,所以我相信可能是构造函数没有执行,但我不明白为什么。

在我的 JSP 中我使用:

<jsp:useBean id="myBean" class="logic.logicBean" scope = "session" />

我认为这样做时,默认构造函数会执行,这是错误的吗?

最佳答案

Arrays.asList(amounts)预计T... ,其中T是一个对象类型。这里的问题是你正在传递 double[] ,所以你的列表实际上是 List<double[]> - 不是List<Double> 。其他答案不正确,因为 Arrays.asList保证“直写”到后备数组。

参见 Arrays.asList ...

Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.)

为了证明这一点,请尝试声明 amounts相反 Double[]并允许编译器自动装箱(还要确保更正文字的类型,即添加 .0D 后缀):

amounts = new Double[] { 0.5, 1.0, 1.5, 2.0, 2.5, 3, 3.5, 4.0 };

请注意,它现在可以正常运行了:-)

关于java - 为 double 组获取 Collections.shuffle() 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12333180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com