ArrayList用于用户定义的Class

时间:2013-11-30 15:58:37

标签: java arrays collections arraylist

我在ArrrayList中遇到问题。请帮忙。

一个测试程序,其中有两个数据类型String和int, 当通过add方法添加项时,它会给我错误; 如果添加了Integer类型ArrayList中的方法add(int,Test)不适用于参数(int) 如果String是add,则给出 类型ArrayList中的方法add(Test)不适用于参数(String)

public cl* Test {
String firstName;
int rollNum;

public static void main(String[] args) {//this ArrayList work fine



ArrayList<Integer> Num=new ArrayList<Integer>();
for (int i = 0; i <10; i++) {
    Num.add(i);

}
for (int i = 0; i < Num.size(); i++) {
    System.out.print(Num.get(i));
}//this ArrayList work fine



ArrayList<String> Num2=new ArrayList<String>();
Num2.add("ali");
Num2.add("2");

ArrayList<Test> Num1=new ArrayList<Test>();
Num1.add("Char"); // now it generate Error 

}

2 个答案:

答案 0 :(得分:1)

在最后一个语句中,您创建了一个类型为Test

的数组列表
ArrayList<Test> Num1=new ArrayList<Test>();

所以将Test个对象插入其中

例如: -

Test test = new Test();
test.setFirstName("ABC");
test.setRollNo(23);

ArrayList<Test> Num1 = new ArrayList<Test>();
Num1.add(test);

答案 1 :(得分:1)

ArrayList<Integer> a   means -> Creating an ArrayList of Integer objects.
ArrayList<String> b    means -> Creating an ArrayList of String objects.

类似地,

ArrayList<Test> c      means -> Creating an ArrayList of Test objects.

因此,您需要创建一个Test对象,以便将其添加到c列表中,因为它需要Test对象。

现在,

/* If you have this parameterized constructor. 
   I suggest you to have it if you dont have. */
Test obj = new Test("Fname",10);  

obj现在可以插入到c对象中。这可以使用的add方法实现 ArrayList类。

c.add(obj); //Adds the object 'obj' to the ArrayList 'c'

这不会给出错误。