在Arraylist中添加不同类型和不同类的数据

时间:2016-04-03 16:57:21

标签: java arraylist

所以我最近开始学习java并且正在学习Array List。

假设我有两个A和B类。在A类中,我有两个属性,即字符串类型'name'和int类型'age'。

在B类中,我有一个数组列表,我想要做的是在数组列表中添加name和age的值。

我该怎么做呢?如何在一个数组列表中添加不同类型的数据? 以下是我编写的两个类中的代码,但编译器给出错误。

public class A {

    public String name;
    public int age;

    public input()
    {
        name = "ALI";
        age = 20;
    }

}  

public class B{

    A obj = new A();
    ArrayList aa = new ArrayList(); //error here

     aa.add(obj.name); //error here

}

3 个答案:

答案 0 :(得分:0)

您需要创建 A类的对象,然后将其添加到B类中定义的列表中,这可以使用A的字段值完成,甚至可以使用 getters更好地完成

实施例

public class Tester {
    public String name;
    public int age;

    public Tester()
    {
        name = "ALI";
        age = 20;
    }
    public static void main(String[] args) {
         List<String> myList = new ArrayList<String>();
         Tester t = new Tester();
         myList.add("Name: "+t.name+"; Age: "+t.age);
         System.out.println(myList);

    }
}

类测试程序与 A类相同,主方法中的代码段可以移动到另一个类B

答案 1 :(得分:0)

首先,您必须初始化A类的对象。

A obj=new A();

然后,您可以通过调用input()方法将值分配给A类型对象。

obj.input();

然后你应该在B中的ArrayList中给出元素的类型。因为你想把字符串放在 aa ArrayList中,所以应该将类型指定为 ArrayList <String> < /强>

ArrayList<String> aa = new ArrayList<String>(); //error here
aa.add(obj.name);

注意:如果要在一个ArrayList中添加不同类型的对象,则必须学习多态的概念,因为您不熟悉Java。最简单但不推荐的方法是使用类型为 Object 的ArrayList,它是所有Java类的父类。

ArrayList<Object> list=new ArrayList<Object>();

现在您可以在此列表中添加任何内容。

String a="example";
list.add(a);
int b=10;
list.add(b);

依旧......

答案 2 :(得分:0)

您的代码段不太清楚。我假设你正在尝试这样做。

ClassB的

import java.util.ArrayList;

    class ClassB {

        public String name;
        public int age;

        public ClassB() {
            name = "ALI";
            age = 53;
        }

    }

ClassA的

public class ClassA {

    public static void main(String[] args) {

        ClassB obj = new ClassB();
        ArrayList aa = new ArrayList();

        aa.add(obj.age); // int
        aa.add(obj.name); // string

        aa.add(15.2); // float
    }

}

如果你注意到在arraylist中也添加了float。如您要添加其他数据类型。只要您没有为任何集合类指定任何特定的通用数据类型。您可以添加任何数据类型。