如何解决循环查找最大值
| 嗨,我在写一个查找最大值的循环时遇到了问题。 整数列表和整数变量声明如下: 清单清单; int max; 假设某些值(包括负数!)已添加到列表中。我需要在列表中找到最大值并将其存储在最大值中。// start of test code
import java.util.*;
public class ListTest
{
private List<Integer> list;
private int max;
public void findMaxInListtest()
{
list = new ArrayList<Integer>(); // Could be a Linked list
list.add(0);
list.add(-99);
list.add(99);
list.add(1320);
list.add(470000);
list.add(12);
list.add(-5000);
list.add(300);
/*# max = starting value
iterate through list to set max = max value in list
in this case 470000
*/
}
}
我尝试使用此循环,但随后遇到错误:
int max = list[0];
for(int i=470000;i < list.length;i++){
if(list[i] > max){
max = list[i];
}
}
return max;
您知道适合哪种循环吗?谢谢
解决方法
您需要遍历列表。以i = 0开头-不是47000。
希望这可以帮助。
,
for(int i=470000;i < list.length;i++){
我是指数。把我= 0。获取索引470000的列表元素将引发异常。
同样,list [i]在Java中不起作用。使用list.get(i)。
此外,list.length不适用于列表。使用list.size()。
您误解了Java List-它不是数组。
, import java.util.Collections;
Collections.sort(list);
System.out.println(list.get(list.size() - 1));
, for(int i=470000;i < list.length;i++){
应该
for(int i=0;i < list.length;i++){
, 无需循环,请使用java.utils.Collections
(文档)中的max
方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(0);
list.add(-99);
list.add(99);
list.add(1320);
list.add(470000);
list.add(12);
list.add(-5000);
list.add(300);
System.out.println(Collections.max(list));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。