gpt4 book ai didi

java - 无法对数组列表进行排序

转载 作者:行者123 更新时间:2023-11-30 02:35:43 24 4
gpt4 key购买 nike

尝试将输出打印为:

第一个最大值

第一分钟

第二个最大值

第二分钟

第三个最大值...等等

这是我的代码:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;


public class Arraylist1 {
public static void main(String args[]){
List <Integer>list= new ArrayList <Integer> ( );
list.add(20);
list.add(30);
list.add(70);
list.add(50);
list.add(60);
list.add(40);
for(int i=0;i<list.size();i++) {
if(i%2==0){
Object num=Collections.max(list);
System.out.println(num);
list.remove(num);
}
else if(i%2!=0)
{
Object num1=Collections.min(list);
System.out.println(num1);
list.remove(num1);
}
}
}
}


70
20
60

为什么它只打印前三个数字?

我的预期输出:

 70 20 60 30 50 40

最佳答案

for(int i=0;i<list.size();i++)

您的循环条件不正确。

您不会循环 6 次。

您只循环 3 次,因为当您在每次迭代中从列表中删除项目时,大小会发生变化。

所以你可能想要:

int max = list.size();

for(int i = 0; i < max; i++)

也就是说,您想要将循环修复为列表中的初始条目数。

关于java - 无法对数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43164253/

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