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

How to add multiple objects types in the same list in Java

我是 java 的新手并尝试克服它。我有像 (String URL, int Score) 这样的数据,我想在数组列表中实现它。我搜索了如何在 ArrayListLinkedList 中实现多种类型的变量,发现解决方案是从 super class 创建 sub class 并且我创建了这个 sub class:

public class MySubClass extends MyList{

public String URL;
public int UrlScore;

public MySubClass (String a, int b){

    URL = a;
    UrlScore = b;
    }
}

我的超级 class 是:

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 对象时出现错误?错误说:

The method add(int, MySubClass) in the type ArrayList is not applicable for the arguments (String, int)

你能告诉我哪里做错了吗?我该如何修复它?提前致谢。

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

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

顺便说一句,MySubClass 没有必要成为 MyList 的子 class。

如评论中所述,您应该覆盖 MySubClass 中的 toString() 方法,以便按您的意愿显示 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;
    }
}

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

MySubClass obj = new MySubClass("http://www.something.com", 5);
myList_1.add(obj);
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);



    }
}

尝试类似的操作,代码将起作用。