gpt4 book ai didi

java - 将列表中的元素移动到最后一个索引

转载 作者:行者123 更新时间:2023-12-02 09:14:55 33 4
gpt4 key购买 nike

我想根据规则切换列表中元素的位置。

我有一张包含一些数据的 map :

Map<String,List<Person>> workDivision = [:]
//inserted data to map...

我正在循环 map ,并根据规则我想将列表中的元素移动到列表的后面。因此我首先删除该元素,然后再次插入它。

workDivision.each {String division, List<Person> list -> {
if(list.size>1 && someRule = true) {
for(int i = 0; i<list.size; i++) {
Person p = list.get(i)
list.remove(i)
list.add(p)
}
}

}

上面的代码不起作用,我不知道为什么。有人可以检查我是否遗漏了什么或完全做错了吗?

最佳答案

您的空结果可能是由于修改迭代器结果而不是实际对象的范围问题造成的。我不知道足够的常规来帮助这个问题,所以这个答案将解决您尝试使用的实际修改算法。

您的循环正在移动多个项目。首先,它删除索引 0 并将其放回末尾,然后 i 递增并移动索引 1。索引 1 中的内容不是列表中的下一项,因为您刚刚移动了它。

示例列表 A、B、C、D、E

i=0   A is removed and added -> B, C, D, E, A
i=1 C is removed and added -> B, D, E, A, C
i=2 E is removed and added -> B, D, A, C, E
i=3 C is removed and added -> B, D, A, E, C
i=4 C is removed and added again -> B, D, A, E, C
i=5 loop ends

关于java - 将列表中的元素移动到最后一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59075660/

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