如何在Java中的同一列表中添加多个对象类型

时间:2015-01-04 15:38:23

标签: java arraylist linked-list singly-linked-list

我是java的新手并试图克服它。我有像(String URL, int Score)这样的数据,我想在Array List中实现它。我已经搜索了如何在ArrayListLinkedList中实现多种类型的变量,并发现解决方案是从超类创建子类并创建此子类:

public class MySubClass extends MyList{

public String URL;
public int UrlScore;

public MySubClass (String a, int b){

    URL = a;
    UrlScore = b;
    }
}

我的超级班是:

import java.util.ArrayList;

public class MyList {

public static void main(String[] args) {

    ArrayList <MySubClass> myList_1 = new ArrayList <MySubClass> ();

    myList_1.add("http://www.something.com", 5);

    System.out.println(myList_1);   

    }
}

我尝试使用添加Add对象时遇到错误?错误说:

  

类型ArrayList中的方法add(int,MySubClass)不适用于参数(String,int)

你能告诉我在哪里做错了吗?我怎么能修好它?提前谢谢。

3 个答案:

答案 0 :(得分:2)

您可以通过创建MySubClass的对象并将其添加到列表中来修复它。

MySubClass obj = new MySubClass("http://www.something.com", 5);
myList_1.add(obj);

答案 1 :(得分:1)

您应该在列表中添加MySubClass的实例:

myList.add(new MySubClass("http://www.something.com", 5));

顺便说一句,MySubClass不需要成为MyList的子类。

正如评论中所述,您应该覆盖toString()中的MySubClass方法,以便根据需要显示MySubClass的每个实例。

可能的实施:

public class MySubClass 
{

    public String URL;
    public int UrlScore;

    public MySubClass (String a, int b)
    {
        URL = a;
        UrlScore = b;
    }

    public String toString()
    {
        return URL + "=" + UrlScore;
    }
}

答案 2 :(得分:1)

import java.util.ArrayList;

public class MyList {

public static void main(String[] args) {

    ArrayList <MySubClass> myList_1 = new ArrayList <MySubClass> ();
    MySubClass myobj = new MySubClass("http://www.something.com", 5);

    myList_1.add(myobj);



    }
}

尝试类似的东西,代码就可以了。