24

I want to add an object to an ArrayList, but each time I add a new object to an ArrayList with 3 attributes: objt(name, address, contact), I get an error.

import java.util.ArrayList;
import java.util.Scanner;
public class mainClass {
    public static void main(String args[]){

        Scanner input = new Scanner(System.in);
        System.out.println("Plz enter Name : ");
        String name = input.nextLine();
        System.out.println("Plz enter Address : ");
        String address = input.nextLine();
        System.out.println("Plz enter ContactNo : ");
        String contact = input.nextLine();


        ArrayList<Data> Contacts = new ArrayList<Data>();
        Data objt = new Data();
        Contacts.add(objt.Data(name, address, contact));
    }
}

Here, Data is the class of which I'm trying to create an object and pass it to an ArrayList.

public class Data {

        private String name = "";
        private String address = "";
        private String cell = "";


        public void Data(String n, String a, String c){

            name = n;
            address = a;
            cell = c;
        }
        public void printData(){

            System.out.println("Name\tAddress\tContactNo");
            System.out.println(name + "\t" + address + "\t" + cell);
        }
}
1
  • What error did you get? Commented Apr 2, 2015 at 7:10

7 Answers 7

47

You need to use the new operator when creating the object

Contacts.add(new Data(name, address, contact)); // Creating a new object and adding it to list - single step

or else

Data objt = new Data(name, address, contact); // Creating a new object
Contacts.add(objt); // Adding it to the list

and your constructor shouldn't contain void. Else it becomes a method in your class.

public Data(String n, String a, String c) { // Constructor has the same name as the class and no return type as such
Sign up to request clarification or add additional context in comments.

1 Comment

Also the OP should write a constructor in his class.
1

Try this one:

Data objt = new Data(name, address, contact);
Contacts.add(objt);

Comments

1
Contacts.add(objt.Data(name, address, contact));

This is not a perfect way to call a constructor. The constructor is called at the time of object creation automatically. If there is no constructor java class creates its own constructor.

The correct way is:

// object creation. 
Data object1 = new Data(name, address, contact);      

// adding Data object to ArrayList object Contacts.
Contacts.add(object1);                              

Comments

0

You have to use new operator here to instantiate. For example:

Contacts.add(new Data(name, address, contact));

Comments

0

The best way to pass data to class List,

private final List<electronic> Electronic = new ArrayList<electronic>();

public List<electronic> getElectronic() {
    return Electronic;
}

// creating list to store and display the Electronic items
public void StoreAndDisplayElectronic() {
    String[] EelctronicName = { "Laptop", "Television", "ElectricBike" };
    String[] ElectronicID = { "091", "202", "151" };
    Double[] EPrice = { 340.00, 280.00, 600.00 };
    int[] EAmt = { 5, 12, 4 };

    for (int i = 0; i < ElectronicID.length; i++) {
        this.Electronic.add(new electronic(EelctronicName[i], ElectronicID[i], EPrice[i], EAmt[i]));
    }
}

Comments

0

You don't return a Data Object when call 'Data()' method.

Change 'Data()' method to:

    public Data Data(String n, String a, String c){
        name = n;
        address = a;
        cell = c;
        return this;
    }

Comments

-1

change Date to Object which is between parenthesis

2 Comments

What Date? This doesn't look like a solution to me.
I think they meant Data but it doesn't look this user is coming back.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.