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



我是java的新手,并尝试克服它。我有像(String URL, int Score)这样的数据,我想在数组列表中实现它。我搜索了如何在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)

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

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

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

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

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

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

如注释中所述,您应该重写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;
    }
}
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);

    }
}

尝试这样的事情,代码将起作用。

相关内容

  • 没有找到相关文章

最新更新