gpt4 book ai didi

java - 如何在 for 循环中使用 getIndices ?

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

public void calculateTotal(){
int wheelIndex = wheels.getSelectionModel().getSelectedIndex();
int deckIndex = decks.getSelectionModel().getSelectedIndex();
int truckIndex = trucks.getSelectionModel().getSelectedIndex();
int [] miscArray = misc.getSelectionModel().getSelectedIndices();
int miscTotal = 0;

for(int i = 0; i < miscArray.length; i++){
miscTotal += miscPrices[miscArray[i]];
}
}
<小时/>

我的问题出在int [] miscArray = misc.getSelectionModel().getSelectedIndices();

它告诉我更改为 ObservableList,但如果我更改为它,我将无法访问 i < miscArray.lengthmiscArray[i]指数。有人可以帮忙吗?

最佳答案

方法selectionModel.getSelectedIndices()返回 ObservableList<Integer>而不是一个数组。因此,您必须使用该列表,或将该列表转换为数组。

要获取列表的大小,您可以使用 list.size()方法。要从列表中获取元素,您可以使用 list.get(index)HereObservableList 的完整 java 文档.

public void calculateTotal(){
int wheelIndex = wheels.getSelectionModel().getSelectedIndex();
int deckIndex = decks.getSelectionModel().getSelectedIndex();
int truckIndex = trucks.getSelectionModel().getSelectedIndex();
ObservableList<Integer> miscList = misc.getSelectionModel().getSelectedIndices();
int miscTotal = 0;

for(int i = 0; i < miscList.size(); i++){
miscTotal += miscPrices[miscList.get(i)];
}
}

或者您可以使用 Java Streams:

int miscTotal = miscList.stream().mapToInt(i -> miscPrices[i]).sum();

如果你想改造ObervableList对于数组(我不会这样做),您可以使用 list.toArray()方法。

关于java - 如何在 for 循环中使用 getIndices ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55072480/

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