如何在 Java 中将对象添加到 ArrayList

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19616972/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 18:49:20  来源:igfitidea点击:

How to add an object to an ArrayList in Java

javaarraylistadd

提问by Johnfranklien

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

我想向 an 添加一个对象ArrayList,但是每次我向ArrayList具有 3 个属性的an 添加一个新对象时objt(name, address, contact),我都会收到错误消息。

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, Datais the class of which I'm trying to create an object and pass it to an ArrayList.

在这里,Data是我试图创建一个对象并将其传递给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);
        }
}

采纳答案by SudoRahul

You need to use the newoperator when creating the object

new创建对象时需要使用运算符

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.

并且您的构造函数不应包含void. 否则它会成为您班级中的一个方法。

public Data(String n, String a, String c) { // Constructor has the same name as the class and no return type as such

回答by Umar Asghar

Try this one:

试试这个:

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

回答by Prashant Bhagwani

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

您必须在此处使用 new 运算符来实例化。例如:

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

回答by moha

change Date to Object which is between parenthesis

将日期更改为括号之间的对象

回答by saibaba vali

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.

这不是调用构造函数的完美方式。构造函数在对象创建时自动调用。如果没有构造函数,java 类会创建自己的构造函数。

The correct way is:

正确的方法是:

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

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