user1556084
user1556084

Reputation: 29

Java: find the largest number in a list of a number of integers that the user has set

the code below compiles perfectly for 5 integers entered by the user.
what i want to do is alter my code so that i can as the user how many numbers the user wants in the list. then the program will ask the user to enter that many integers and then the program will find the largest of those integers. can anyone help me alter the code below to fit these new standards?

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

i first want to prompt the user with

how many integers do you want in your list?

then i want to say

enter an integer: 

as many times as the user said he wanted.

Upvotes: 2

Views: 71368

Answers (7)

Mukhlis
Mukhlis

Reputation: 11

Don't try Any other Method ... What You think About this easyone...?

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

Very much easy...

Upvotes: -1

JavaGod
JavaGod

Reputation: 1

import javax.swing.JOptionPane;

public class Largest_String{ public static void main(String[] args){ 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:" ));
int integer6= Integer.parseInt(JOptionPane.showInputDialog("Enter an Integer")); int integer7= Integer.parseInt(JOptionPane.showInputDialog("Enter an Integer")); int integer8= Integer.parseInt(JOptionPane.showInputDialog("Enter an Integer")); int integer9= Integer.parseInt(JOptionPane.showInputDialog("Enter an Integer")); int integer10= Integer.parseInt(JOptionPane.showInputDialog("Enter an Integer"));

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

Upvotes: -1

JeremyF
JeremyF

Reputation: 745

I actually have a pre made class that I setup for finding the largest integer of any set of values. You can put this class into your project and simply use it in any class like so:

 System.out.println(figures.getLargest(8,6,12,9,120));

This would return the value "120" and place it in the output. Here is the methods source code if you are interested in using it:

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

Upvotes: 0

Ted Hopp
Ted Hopp

Reputation: 234795

You know how to obtain an integer from the user, so the first part of the new requirements is easy:

int n = Integer.parseInt(JOptionPane.showInputDialog(
    "how many integers do you want in your list?" ));

Then you will need to loop and collect that many integers. You don't need to store them, since you are just looking for the largest one.

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

Upvotes: 4

obataku
obataku

Reputation: 29646

The key here is to use Collections.max.

Returns the maximum element of the given collection, according to the natural ordering of its elements.

The natural ordering for Integer is from least-to-greatest, i.e. ascending. This makes it perfect to use here.

int largest = Collections.max(Arrays.asList(integer1, integer2, integer3,
    integer4, integer5));

Alternatively, you could just build the List using a loop instead. See below for code that prompts the user to input the number of integers to enter.

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

Upvotes: 16

Hernan Velasquez
Hernan Velasquez

Reputation: 2820

You may do:

  1. Ask the user for the number of integers he wants to enter:

    int a = Integer.parseInt(JOptionPane.showInputDialog( "Enter the size of the array:" ));
    
  2. Create the array.

    int [] arr = new int[a];
    
  3. Read the numbers

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

    int max=0;
    for (int i=0; i<a; i++){
        if ( max < arr[i] ) {
            max = arr[i];
        }
    }
    

You will have your value in max

Upvotes: 0

Bharat Sinha
Bharat Sinha

Reputation: 14363

Here goes the complete solution:

First take input from user how many number they want then use list to store those numbers and at last use Collections.max (as suggested by @oldrinb) to find the largest number.

You can try following:

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

Upvotes: 0

Related Questions