循环查找最大值

问题描述

| 嗨,我在写一个查找最大值的循环时遇到了问题。 整数列表和整数变量声明如下:   清单清单;   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));
    }
}