Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将链表转换为通用字符串_Java_Linked List_Generic Collections - Fatal编程技术网

Java 将链表转换为通用字符串

Java 将链表转换为通用字符串,java,linked-list,generic-collections,Java,Linked List,Generic Collections,我正在编写一个链表类,它接收名称或数字,然后将它们打印在列表中。我设法正常地写了这份清单。以下是我所做的: public String toString(){ return list.toString; //where list is the LinkedList I am calling } 它工作正常,并在添加以下4个元素后返回我的列表: [Joe, Jessica, Max, 5] 现在我正在尝试将相同的方法转换为泛型方法,所以我做了两件事 在这里,我创建了collection

我正在编写一个链表类,它接收名称或数字,然后将它们打印在列表中。我设法正常地写了这份清单。以下是我所做的:

public String toString(){
    return list.toString; //where list is the LinkedList I am calling
}
它工作正常,并在添加以下4个元素后返回我的列表:

[Joe, Jessica, Max, 5]
现在我正在尝试将相同的方法转换为泛型方法,所以我做了两件事

在这里,我创建了collections对象:

private Collection<E> collection;

public MyLinkedListG(Collection<E> _collection) {
    collection= _collection;
}
问题是,现在我的测试类不允许我调用之前创建的LinkedList对象,该对象是:

 MyLinkedListG x = new MyLinkedListG();
它说明我需要在参数内输入一个集合。我现在怎么称呼它?还是我完全错了


如果有不清楚的地方,请让我知道,以便我能尽快澄清。感谢高级。只有在以下情况下,才能使用空构造函数

A) 您尚未定义构造函数

B) 如果已显式定义空构造函数


据我所知,您的原始类可能没有包含构造函数。这意味着默认情况下会提供无参数构造函数
new MyLinkedListG()
,这可能是您用来构造类实例的方法

修改后,您添加了一个构造函数
MyLinkedListG(Collection\u Collection)
。现在,默认情况下不再提供无参数构造函数。如果要继续使用它,必须显式定义它

在这种情况下,您的类可能有两个(或更多)构造函数,可能是这样的:

private Collection<E> collection;

public MyLinkedListG(Collection<E> _collection) {
    collection= _collection;
}

public MyLinkedListG() {
    collection=new LinkedList<E>();
}
私人收藏;
公共MyLinkedListG(集合_集合){
集合=_集合;
}
公共MyLinkedListG(){
collection=newlinkedlist();
}

现在您可以对对象使用任意一个构造函数。

是的,您刚刚创建了一个带参数的构造函数。。显然,您必须在其中提供一个集合首先,您的构造函数是有缺陷的,因为它接受一个随机集合(可以是一个集合或优先级队列或其他任何东西),您不能直接将其用作自定义链表的后备集合。更好的解决方案是使用无参数构造函数,并公开一个向链表中添加单个元素的方法。或者,如果必须具有构造函数,则让参数类型为java.util.List而不是java.util。Collection@JeroenVannevel假设我想在列表中添加几个值,如何添加它们?它必须通过参数吗?@aquaraga但我希望它同时接受INT和字符串,我如何使它同时接受INT和字符串?@user1404664如果是,不要使用泛型。泛型用于处理相同类型的集合。或者,将基础集合视为一个列表如何明确定义我希望继续使用默认构造函数?
private Collection<E> collection;

public MyLinkedListG(Collection<E> _collection) {
    collection= _collection;
}

public MyLinkedListG() {
    collection=new LinkedList<E>();
}