[英]How to add an object to an ArrayList in Java
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.我想将一个对象添加到ArrayList
,但是每次我将一个新对象添加到具有 3 个属性的ArrayList
时: 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);
}
}
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
.并且您的构造函数不应包含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
Try this one:试试这个:
Data objt = new Data(name, address, contact);
Contacts.add(objt);
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);
You have to use new operator here to instantiate.您必须在此处使用 new 运算符来实例化。 For example:例如:
Contacts.add(new Data(name, address, contact));
如何通过使用该对象的元素之一(例如Name)来获取一个对象的索引(想象是否添加了2个Data对象)?
The best way to pass data to class List,将数据传递给类 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]));
}
}
You don't return a Data Object when call 'Data()' method.调用 'Data()' 方法时不会返回数据对象。
Change 'Data()' method to:将 'Data()' 方法更改为:
public Data Data(String n, String a, String c){
name = n;
address = a;
cell = c;
return this;
}
将日期更改为括号之间的对象
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.