fkianos15
fkianos15

Reputation: 39

ArrayList Object

I am using the ArrayList Object to create an employee object of type employee...I implement the class and it seems to work, but my problem is that when I insert the employees into the ArrayList it is automatically doesn't insert it. Why is that?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author
 */

import java.util.*;

class Employee {

    private String fname;
    private String lname;



    public Employee (String fname, String lname){
        this.fname = fname;
        this.lname = lname;
    }

    public Employee (){
    }

    public String getLastName(){
            return this.lname;
    }

    public void setLastName(String lname){
            this.lname = lname;
    }

    public String getFirstName(){
        return this.fname;
    }

    public void setFirstName (String fname){
        this.fname = fname;
    }

    public String toString(){
        return this.getClass().getName() +" [ "
                + this.fname + " "
                + this.lname + " ]\n ";
    }

    public Object clone(){ //Object is used as a template
        Employee emp;
        emp = new Employee(this.fname, this.lname);

        return emp;
    }
}

//start of main 
 public class main
 {
    static Scanner input = new Scanner(System.in);

    public static final int MAX_EMPLOYEES = 10;

    public static void main(String[] args) {


        String fname, lname;
        int num;

        System.out.print("Enter the number of employees in your system: ");
        num = input.nextInt();

        ArrayList<Employee> emp = new ArrayList<Employee>(num);

        System.out.print("Enter the first name: ");
        fname = input.next();
        System.out.println();

        System.out.print("Enter the last name: ");
        lname = input.next();
        System.out.println();

        for (int x = 1; x < num; x++)
        {
            System.out.print("Enter the first name: ");
            fname = input.next();
            System.out.println();

            System.out.print("Enter the last name: ");
            lname = input.next();
            System.out.println();

            emp.add(new Employee(fname,lname));
        }

        num = emp.size();
        System.out.println(num);
        System.out.println(emp);


    }
 }

Upvotes: 0

Views: 524

Answers (2)

Kumar Bibek
Kumar Bibek

Reputation: 9117

Your loop is running 1 less time than is required.

for(int i=0;i<num; i++){

This should fix it.

Upvotes: 0

Z&#233;ychin
Z&#233;ychin

Reputation: 4205

Add:

emp.add(new Employee(fname,lname));

just before your for loop or rewrite your for loop conditional as:

for (int x = 0; x < num; x++)

and get rid of the

System.out.print("Enter the first name: ");
fname = input.next();
System.out.println();

System.out.print("Enter the last name: ");
lname = input.next();
System.out.println();

before the for loop.

Upvotes: 5

Related Questions