循环查找最大值

时间:2011-05-31 23:11:29

标签: java

嗨我写一个找到最大值的循环有问题。

整数列表和整数变量声明如下:   清单清单;   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;

你知道哪种循环适合这个吗?感谢

5 个答案:

答案 0 :(得分:2)

您需要遍历列表。从i = 0开始 - 不是47000。

希望这有帮助。

答案 1 :(得分:2)

for(int i=470000;i < list.length;i++){
我是索引。把i = 0。获取索引470000的列表元素会引发异常。

另外,list [i]在java中不起作用。使用list.get(i)。 另外,list.length不适用于列表。使用list.size()。

你错误解释了java List - 它不是一个数组。

答案 2 :(得分:2)

import java.util.Collections;

Collections.sort(list);
System.out.println(list.get(list.size() - 1));

答案 3 :(得分:1)

for(int i=470000;i < list.length;i++){ 

应该是

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

答案 4 :(得分:0)

不需要循环,请使用maxDocumentation)中的java.utils.Collections方法

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));
    }
}