Java:在用户设置的整数列表中查找最大的数字

Java:在用户设置的整数列表中查找最大的数字,java,list,loops,Java,List,Loops,下面的代码完美地编译了用户输入的5个整数。 我想做的是修改我的代码,这样我可以作为用户在列表中输入用户想要的数字。然后程序会要求用户输入那么多整数,然后程序会找到其中最大的整数。有人能帮我修改下面的代码以符合这些新标准吗 { int integer1 = Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer:" )); int integer2 = Integer.parseInt(JO

下面的代码完美地编译了用户输入的5个整数。
我想做的是修改我的代码,这样我可以作为用户在列表中输入用户想要的数字。然后程序会要求用户输入那么多整数,然后程序会找到其中最大的整数。有人能帮我修改下面的代码以符合这些新标准吗

{
    int integer1 = 
    Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer:" ));
    int integer2 = 
    Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer:" ));
    int integer3 = 
    Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer:" ));
    int integer4 = 
    Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer:" ));
    int integer5 = 
    Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer:" ));   

    if (integer1 > integer2 && integer1 > integer3 && integer1 > integer4 && integer1 > integer5)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer1);
    if (integer2 > integer1 && integer2 > integer3 && integer2 > integer4 && integer2 > integer5)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer2);
    if (integer3 > integer2 && integer3 > integer1 && integer3 > integer4 && integer3 > integer5)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer3);
    if (integer4 > integer1 && integer4 > integer3 && integer4 > integer2 && integer4 > integer5)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer4);
    if (integer5 > integer1 && integer5 > integer3 && integer5 > integer4 && integer5 > integer2)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer5);
 }
我首先想用

how many integers do you want in your list?
那么我想说

enter an integer: 
用户想要多少次就有多少次。

这里的关键是使用

根据元素的自然顺序返回给定集合的最大元素

整数的自然顺序是从最小到最大,即升序。这使得它非常适合在这里使用

int largest = Collections.max(Arrays.asList(integer1, integer2, integer3,
    integer4, integer5));
或者,您可以使用循环来构建
列表。有关提示用户输入要输入的整数数的代码,请参见下文

int n = Integer.parseInt(
    JOptionPane.showInputDialog("How many integers do you want in your list?"));
List<Integer> inputs = new ArrayList<Integer>(n);
for (int i = 0; i < n; ++i) {
  inputs.add(Integer.parseInt(
      JOptionPane.showInputDialog("Enter an integer:")));
}
int largest = Collections.max(inputs);
JOptionPane.showMessageDialog(null, "The largest number is: " + largest);
int n=Integer.parseInt(
showInputDialog(“列表中需要多少整数?”);
列表输入=新的ArrayList(n);
对于(int i=0;i
完整的解决方案如下:

首先从用户输入他们想要的号码,然后使用列表存储这些号码,最后使用
Collections.max
(如
@oldrinb
所建议的)查找最大号码

您可以尝试以下操作:

List<Integer> listOfNumbers = new ArrayList<Integer>();
int count = Integer.parseInt(JOptionPane.showInputDialog( "how many integers do you want in your list?" ));

for(int i=1;i<=count;i++){
    int number = Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer::" ));
    listOfNumbers.add(number);
}
JOptionPane.showMessageDialog(null, "The largest number is: " + Collections.max(listOfNumbers));
List listofNumber=new ArrayList();
int count=Integer.parseInt(JOptionPane.showInputDialog(“列表中需要多少整数?”);
对于(int i=1;i您可以执行以下操作:

  • 询问用户要输入的整数数:

    int a = Integer.parseInt(JOptionPane.showInputDialog( "Enter the size of the array:" ));
    
  • 创建数组

    int [] arr = new int[a];
    
  • 读一下数字

    for (int i=0; i<a; i++){
        arr[i] = Integer.parseInt(JOptionPane.showInputDialog( "Enter an integer:" ));
    }
    

    for(int i=0;i您知道如何从用户处获取整数,因此新要求的第一部分很简单:

    int n = Integer.parseInt(JOptionPane.showInputDialog(
        "how many integers do you want in your list?" ));
    
    然后你需要循环并收集那么多的整数,你不需要存储它们,因为你只是在寻找最大的一个

    int maxSoFar = Integer.MIN_VALUE;
    for (int i = 0; i < n; ++i) {
        int integer = 
            Integer.parseInt(JOptionPane.showInputDialog( "enter an integer:" ));
        if (integer > maxSoFar) {
            maxSoFar = integer;
        }    
    }
    
    int maxSoFar=Integer.MIN\u值;
    对于(int i=0;i最大值){
    maxSoFar=整数;
    }    
    }
    
    实际上,我有一个预先创建的类,用于查找任何值集的最大整数。您可以将该类放入项目中,并在任何类中使用它,如下所示:

     System.out.println(figures.getLargest(8,6,12,9,120));
    
    这将返回值“120”并将其放入输出中。如果您有兴趣使用它,请参阅以下方法源代码:

    public class figures {
    
         public static int getLargest(int...f) {
              int[] score = new int[f.length];
              int largest=0;
              for(int x=0;x<f.length;x++) {
                    for(int z=0;z<f.length;z++) {
                        if(f[x]>=f[z]) {
                        score[x]++;
                        }else if(f[x]<f[z]) {
    
                        }else {
                            continue;
                        }
                        if(z>=f.length) {
                        z=0;
                        break;
                        }
                  }
           }
    for(int fg=0;fg<f.length;fg++) {
        if(score[fg]==f.length) {
            largest = f[fg];
        }
    }
    return largest;
        }
    }
    
    公共类人物{
    公共静态整数最大(整数…f){
    int[]分数=新的int[f.长度];
    int最大=0;
    
    对于(intx=0;ximportjavax.swing.JOptionPane

    公共类最大字符串{ 公共静态void main(字符串[]args){ 整数1= parseInt(JOptionPane.showInputDialog(“输入整数:”); 整数2= parseInt(JOptionPane.showInputDialog(“输入整数:”); 整数3= parseInt(JOptionPane.showInputDialog(“输入整数:”); 整数4= parseInt(JOptionPane.showInputDialog(“输入整数:”); 整数5= Integer.parseInt(JOptionPane.showInputDialog(“输入整数:”);
    整数6= parseInt(JOptionPane.showInputDialog(“输入整数”); 整数7= parseInt(JOptionPane.showInputDialog(“输入整数”); 整数8= parseInt(JOptionPane.showInputDialog(“输入整数”); 整数9= parseInt(JOptionPane.showInputDialog(“输入整数”); 整数10= parseInt(JOptionPane.showInputDialog(“输入整数”)


    不要尝试任何其他方法。。。 你觉得这件事怎么样

    import java.util.Scanner;
    public class Find_Max_Number{
    
    double input =0;
    double number=0;
    
    Scanner in = new 
    Scanner(System.in);
    
    System.out.print("Please Enter 
    Number or -1 to Quit: ");
    input = in.nextDouble;
    
    while(input!=-1){
    
    input = in.nextDouble();
    
    if(input>number){
    number=input;
    }
    
    System.out.println("The Largest 
    Number is: " +number);
    }
    }
    

    非常简单…

    我怀疑这是家庭作业。你需要循环并使用数组来收集输入整数。这就是你需要帮助的吗?或者,你可以不使用数组,而是在获得输入时跟踪哪个输入最大。我正要说完全相同的话。我正在尝试强制换行,我允许我需要找到允许断点的最大索引。Collections.max()答案对我来说非常有用。谢谢!添加一些有关解决方案的信息,并格式化代码,请参阅
    if (integer1 > integer2 && integer1 > integer3 && integer1 > integer4 && integer1 > integer5 && integer1>integer6 && integer1>integer7 && integer1>integer8 && integer1>integer9 && integer1>integer10)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer1);
    if (integer2 > integer1 && integer2 > integer3 && integer2 > integer4 && integer2 > integer5 && integer2>integer6 && integer2>integer7 && integer2>integer8 && integer2>integer9 && integer2>integer10)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer2);
    if (integer3 > integer2 && integer3 > integer1 && integer3 > integer4 && integer3 > integer5 && integer3>integer6 && integer3>integer7 && integer3>integer8 && integer3>integer9 && integer3>integer10)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer3);
    if (integer4 > integer1 && integer4 > integer3 && integer4 > integer2 && integer4 > integer5 && integer4>integer6 && integer4>integer7 && integer1>integer8 && integer1>integer9 && integer1>integer10)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer4);
    if (integer5 > integer1 && integer5 > integer3 && integer5 > integer4 && integer5 > integer2 && integer5>integer6 && integer5>integer7 && integer5>integer8 && integer5>integer9 && integer5>integer10)
        JOptionPane.showMessageDialog(null, "The largest number is: " + integer5);
    if(integer6 > integer1 && integer6 > integer3 && integer6 > integer4 && integer6 > integer2 && integer6>integer7 && integer6>integer8 && integer6>integer9 && integer6>integer10 && integer6>integer5)
        JOptionPane.showMessageDialog(null,"The largest number is:"+integer6);
    if(integer7>integer1 && integer7>integer2 && integer7>integer3 && integer7>integer4 && integer7>integer5 && integer7>integer6 && integer7>integer8 && integer7>integer8 && integer7>integer9 && integer7>integer10)
        JOptionPane.showMessageDialog(null,"The largest number is:"+integer7);
    if(integer8>integer1 && integer8>integer2 && integer8>integer3 && integer8>integer4 && integer8>integer5 && integer8>integer6 && integer8>integer7&& integer8>integer9 && integer8>integer10)
    JOptionPane.showMessageDialog(null,"The largest number is:"+integer8);
     if(integer9>integer1 && integer9>integer2 && integer9>integer3 && integer9>integer4 && integer9>integer5 && integer9>integer6 && integer9>integer7&& integer9>integer8 && integer9>integer10)
          JOptionPane.showMessageDialog(null,"The largest number is:"+integer9);
       if(integer10>integer1 && integer10>integer2 && integer10>integer3 && integer10>integer4 && integer10>integer5 && integer10>integer6 && integer10>integer7&& integer10>integer8 && integer10>integer9)
           JOptionPane.showMessageDialog(null,"The largest number is:"+integer10);
        }
    }
    
    import java.util.Scanner;
    public class Find_Max_Number{
    
    double input =0;
    double number=0;
    
    Scanner in = new 
    Scanner(System.in);
    
    System.out.print("Please Enter 
    Number or -1 to Quit: ");
    input = in.nextDouble;
    
    while(input!=-1){
    
    input = in.nextDouble();
    
    if(input>number){
    number=input;
    }
    
    System.out.println("The Largest 
    Number is: " +number);
    }
    }