How do i use an array list instead of an array for this prog

How do i use an array list instead of an array for this program

/**
* The java program PP88 that reads a file data.txt
* that contains first ,last and zip codes and
* calls the methods sort by name and sort by zip
* and prints the results to console.
* */
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class PP88
{
   public static void main(String[]args)
   {
       new Scanner(System.in);
       Person[] persons = new Person[25];
       String fileName=\"data.txt\";
       int i;
       Scanner filescasnner=null;
       try {

           filescasnner=new Scanner(new File(fileName));
           for(i=0;i<persons.length;i++)
           {

               String firstName = filescasnner.next();
               String lastName = filescasnner.next();
               int Zip = filescasnner.nextInt();
               persons[i]= new Person(firstName, lastName, Zip);
           }
          
          
           filescasnner.close();
          
       } catch (FileNotFoundException e) {
           System.out.println(e.getMessage());
       }

       System.out.println(\"List of names and zip codes: \");
       System.out.printf(\"%-15s%-15s%-15s\ \",\"FirstName\",\"LastName\",\"Zip\");
       for (int j = 0; j < persons.length; j++)
       {
           System.out.println(persons[j]);
       }      
          

       System.out.println(\"List of names sort by first name\");
       //calling sortByName
       sortByName(persons);
       System.out.printf(\"%-15s%-15s%-15s\ \",\"FirstName\",\"LastName\",\"Zip\");
       for (int j = 0; j < persons.length; j++)
       {
           System.out.println(persons[j].toString());
       }      
          


       System.out.println(\"List of names sort by first name\");
       //calling sortByZipCode
       sortByZipCode(persons);
       System.out.printf(\"%-15s%-15s%-15s\ \",\"FirstName\",\"LastName\",\"Zip\");
       for (int j = 0; j < persons.length; j++)
       {
           System.out.println(persons[j].toString());
       }      
          

   }
   /**
   * Public static method that takes persons array object
   * and sorts the array by first name
   * */
   public static void sortByName(Person[] persons)
   {
       for (int i = 0; i < persons.length; i++)
       {
           for (int j = 0; j < persons.length-1; j++)
           {
               if(persons[j].getFirstName().compareTo(persons[j+1].getFirstName())>0)
               {
                   Person temp=persons[j];
                   persons[j]=persons[j+1];
                   persons[j+1]=temp;
               }
           }
       }
   }

   /**
   * Public static method that takes persons array object
   * and sorts the array by zip code
   * */
   public static void sortByZipCode(Person[] persons)
   {
       for (int i = 0; i < persons.length; i++)
       {
           for (int j = 0; j < persons.length-1; j++)
           {
               if(persons[j].getZipCode()>persons[j+1].getZipCode())
               {
                   Person temp=persons[j];
                   persons[j]=persons[j+1];
                   persons[j+1]=temp;
               }
           }
       }
   }

}


------------------------------------------------------------------------------------------

//Person.java

public class Person
{

   private String firstName, lastName;
   private int Zip;
  
   public Person(String firstName,String lastName, int Zip)
   {
       this.firstName=firstName;
       this.lastName=lastName;
       this.Zip=Zip;      
   }
  
   public String getFirstName(){
       return firstName;
   }

   public int getZipCode(){
       return Zip;
   }
  
   public String toString()
   {      
       return String.format(\"%-15s%-15s%-10d\",firstName,lastName,Zip);      
   }
}

------------------------------------------------------------------------------------------

data.txt

Hayden Asher 1232
Alethia Eccles 2324
Hailey Exline 4242
Jaleesa Nightingale 4224
Carlene Veach 4242
Joye Vigil 4244
Glynda Sinha 6656
Rita Hartin 5657
Luis Lind 6878
Jacquelin Chill 5675
Roselyn Germano 5754
Louanne Tondreau 3465
Dessie Dials 9889
Usha Feenstra 4535
Isaac Stallings 3543
Libbie Brame 7657
Jeane Hylton 5756
Stephine Fudge 3634
Sabine Kain 3676
Glayds Mcgilvray 4364
Keven Oday 6436
Angella Raphael 6354
Pamala Lipinski 3576
Mitsue Lehner 6465
Kara Woolsey 4643

------------------------------------------------------------------------------------------

Sample Output:

List of names and zip codes:
FirstName      LastName       Zip          
Hayden         Asher          1232    
Alethia        Eccles         2324    
Hailey         Exline         4242    
Jaleesa        Nightingale    4224    
Carlene        Veach          4242    
Joye           Vigil          4244    
Glynda         Sinha          6656    
Rita           Hartin         5657    
Luis           Lind           6878    
Jacquelin      Chill          5675    
Roselyn        Germano        5754    
Louanne        Tondreau       3465    
Dessie         Dials          9889    
Usha           Feenstra       4535    
Isaac          Stallings      3543    
Libbie         Brame          7657    
Jeane          Hylton         5756    
Stephine       Fudge          3634    
Sabine         Kain           3676    
Glayds         Mcgilvray      4364    
Keven          Oday           6436    
Angella        Raphael        6354    
Pamala         Lipinski       3576    
Mitsue         Lehner         6465    
Kara           Woolsey        4643    
List of names sort by first name
FirstName      LastName       Zip          
Alethia        Eccles         2324    
Angella        Raphael        6354    
Carlene        Veach          4242    
Dessie         Dials          9889    
Glayds         Mcgilvray      4364    
Glynda         Sinha          6656    
Hailey         Exline         4242    
Hayden         Asher          1232    
Isaac          Stallings      3543    
Jacquelin      Chill          5675    
Jaleesa        Nightingale    4224    
Jeane          Hylton         5756    
Joye           Vigil          4244    
Kara           Woolsey        4643    
Keven          Oday           6436    
Libbie         Brame          7657    
Louanne        Tondreau       3465    
Luis           Lind           6878    
Mitsue         Lehner         6465    
Pamala         Lipinski       3576    
Rita           Hartin         5657    
Roselyn        Germano        5754    
Sabine         Kain           3676    
Stephine       Fudge          3634    
Usha           Feenstra       4535    
List of names sort by first name
FirstName      LastName       Zip          
Hayden         Asher          1232    
Alethia        Eccles         2324    
Louanne        Tondreau       3465    
Isaac          Stallings      3543    
Pamala         Lipinski       3576    
Stephine       Fudge          3634    
Sabine         Kain           3676    
Jaleesa        Nightingale    4224    
Carlene        Veach          4242    
Hailey         Exline         4242    
Joye           Vigil          4244    
Glayds         Mcgilvray      4364    
Usha           Feenstra       4535    
Kara           Woolsey        4643    
Rita           Hartin         5657    
Jacquelin      Chill          5675    
Roselyn        Germano        5754    
Jeane          Hylton         5756    
Angella        Raphael        6354    
Keven          Oday           6436    
Mitsue         Lehner         6465    
Glynda         Sinha          6656    
Luis           Lind           6878    
Libbie         Brame          7657    
Dessie         Dials          9889    

Solution

Hi, I have modified your program using ArrayList.

Please let me know in case of any issue.

import java.io.File;

import java.io.FileNotFoundException;

import java.util.ArrayList;

import java.util.Scanner;

public class PP88

{

   public static void main(String[]args)

   {

       ArrayList<Person> persons = new ArrayList<Person>(25);

       String fileName=\"data.txt\";

       int i;

       Scanner filescasnner=null;

       try {

           filescasnner=new Scanner(new File(fileName));

           for(i=0;i<persons.size();i++)

           {

               String firstName = filescasnner.next();

               String lastName = filescasnner.next();

               int Zip = filescasnner.nextInt();

               persons.add(new Person(firstName, lastName, Zip));

           }

           filescasnner.close();

       } catch (FileNotFoundException e) {

           System.out.println(e.getMessage());

       }

       System.out.println(\"List of names and zip codes: \");

       System.out.printf(\"%-15s%-15s%-15s\ \",\"FirstName\",\"LastName\",\"Zip\");

       for (int j = 0; j < persons.size(); j++)

       {

           System.out.println(persons.get(j));

       }

       System.out.println(\"List of names sort by first name\");

       //calling sortByName

       sortByName(persons);

       System.out.printf(\"%-15s%-15s%-15s\ \",\"FirstName\",\"LastName\",\"Zip\");

       for (int j = 0; j < persons.size(); j++)

       {

           System.out.println(persons.get(j));

       }

       System.out.println(\"List of names sort by first name\");

       //calling sortByZipCode

       sortByZipCode(persons);

       System.out.printf(\"%-15s%-15s%-15s\ \",\"FirstName\",\"LastName\",\"Zip\");

       for (int j = 0; j < persons.size(); j++)

       {

           System.out.println(persons.get(j));

       }

   }

   /**

   * Public static method that takes persons array object

   * and sorts the array by first name

   * */

   public static void sortByName(ArrayList<Person> persons)

   {

       for (int i = 0; i < persons.size(); i++)

       {

           for (int j = 0; j < persons.size()-1; j++)

           {

               if((persons.get(j).getFirstName().compareTo(persons.get(j+1).getFirstName()))>0)

               {

                   Person temp= persons.get(j);

                   persons.set(j, persons.get(j+1));

                   persons.set(j+1, temp);

               }

           }

       }

   }

   /**

   * Public static method that takes persons array object

   * and sorts the array by zip code

   * */

   public static void sortByZipCode(ArrayList<Person> persons)

   {

       for (int i = 0; i < persons.size(); i++)

       {

           for (int j = 0; j < persons.size()-1; j++)

           {

               if(persons.get(j).getZipCode()>persons.get(j+1).getZipCode())

               {

                   Person temp= persons.get(j);

                   persons.set(j, persons.get(j+1));

                   persons.set(j+1, temp);

               }

           }

       }

   }

}

How do i use an array list instead of an array for this program /** * The java program PP88 that reads a file data.txt * that contains first ,last and zip codes
How do i use an array list instead of an array for this program /** * The java program PP88 that reads a file data.txt * that contains first ,last and zip codes
How do i use an array list instead of an array for this program /** * The java program PP88 that reads a file data.txt * that contains first ,last and zip codes
How do i use an array list instead of an array for this program /** * The java program PP88 that reads a file data.txt * that contains first ,last and zip codes
How do i use an array list instead of an array for this program /** * The java program PP88 that reads a file data.txt * that contains first ,last and zip codes
How do i use an array list instead of an array for this program /** * The java program PP88 that reads a file data.txt * that contains first ,last and zip codes

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site