如何在 Java 中将对象添加到 ArrayList
Posted
技术标签:
【中文标题】如何在 Java 中将对象添加到 ArrayList【英文标题】:How to add an object to an ArrayList in Java 【发布时间】:2013-11-06 04:09:25 【问题描述】:我想向ArrayList
添加一个对象,但每次我向ArrayList
添加一个具有3 个属性的新对象时: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));
这里,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);
【问题讨论】:
你遇到了什么错误? 【参考方案1】:创建对象时需要使用new
操作符
Contacts.add(new Data(name, address, contact)); // Creating a new object and adding it to list - single step
否则
Data objt = new Data(name, address, contact); // Creating a new object
Contacts.add(objt); // Adding it to the list
并且您的构造函数不应包含void
。否则它会成为你类中的一个方法。
public Data(String n, String a, String c) // Constructor has the same name as the class and no return type as such
【讨论】:
OP 也应该在他的类中编写一个构造函数。【参考方案2】:试试这个:
Data objt = new Data(name, address, contact);
Contacts.add(objt);
【讨论】:
【参考方案3】:Contacts.add(objt.Data(name, address, contact));
这不是调用构造函数的完美方式。构造函数在对象创建时自动调用。如果没有构造函数 java 类创建自己的构造函数。
正确的做法是:
// object creation.
Data object1 = new Data(name, address, contact);
// adding Data object to ArrayList object Contacts.
Contacts.add(object1);
【讨论】:
【参考方案4】:你必须在这里使用 new 操作符来实例化。例如:
Contacts.add(new Data(name, address, contact));
【讨论】:
【参考方案5】:向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]));
【讨论】:
【参考方案6】:调用“Data()”方法时不会返回数据对象。
将 'Data()' 方法更改为:
public Data Data(String n, String a, String c)
name = n;
address = a;
cell = c;
return this;
【讨论】:
【参考方案7】:将日期更改为括号之间的对象
【讨论】:
什么日期?这对我来说似乎不是一个解决方案。 我认为他们的意思是Data
,但看起来这个用户并没有回来。以上是关于如何在 Java 中将对象添加到 ArrayList的主要内容,如果未能解决你的问题,请参考以下文章
如何直接从文件中将项目添加到 Java 中的 ArrayList?
如何在 JniWrapper 中将 Java ArrayList<float[]> 映射到 C++ Vector<array<float,size>>?
如何在Objective C中将对象添加到NSMutableArray?
如何在 JavaScript 中将 File 对象添加到 FileList 集合中?