如何在 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 集合中?

如何在 Java 11 中将 JavaFX 运行时添加到 Eclipse?

如何在java中将文本添加到图像中?