如何在 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
How to add an object to an ArrayList in Java
提问by Johnfranklien
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.
我想向 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, Data
is 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 new
operator 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);