gpt4 book ai didi

java - arraylist 到数组唯一顺序

转载 作者:行者123 更新时间:2023-12-02 03:10:34 26 4
gpt4 key购买 nike

所以我试图遍历一个对象数组列表,这些对象都具有一定的强度值,并且根据它们的强度值,它们会基于此进入更大的二维数组。因此,如果它们的强度值为 0,那么它们将进入较大数组的第 0 个数组,这就是我的代码到目前为止的样子

private ArrayList<Battleable> arr;


public BattleDeck() {
arr = new ArrayList<Battleable>();
for (Battleable creature: arr){
arr.add(creature);
}

}

public Battleable[][] export2Darray() {
//returns a two-dimensional ragged array where each row
// contains a deep copy of all of the Battleable objects
// in the BattleStack with the corresponding Level value
Battleable[][] retVal = new Battleable[10][];


int k = 0;

for (int i = 0; i<arr.size(); i++){
int levelOfObj = arr.get(i).getLevel();
if(levelOfObj == k) {
//insert it into retVal[0][0]

}

}
}

return retVal;
}

我想知道我该怎么做?我如何在语法上说“获取强度为 0 的 obj 并将其放在我的二维数组的位置 0 0

最佳答案

使用 Java 8 流的解决方案:

// group Battleables ArrayList by strength
Map<Integer, List<Battleable>> map =
arr.stream().collect(Collectors.groupingBy(Battleable::getStrength));

结果是一个 map ,其中包含可战斗的列表,并以它们的强度作为键。

如果您需要结果为锯齿状二维数组,请按如下方式对条目进行排序:

final Battleable[][] arrays = new Battleable[10][];
map.entrySet().forEach(entry -> {
arrays[entry.getKey()] = entry.getValue().toArray(new Battleable[entry.getValue().size()]);
});

关于java - arraylist 到数组唯一顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107982/

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