【发布时间】:2015-12-12 23:41:58
【问题描述】:
我正在实现一个基于简单双向列表的 Java 泛型嵌套数据结构。
MyList 包含包含 Info 的 Node。
public class MyList<E> {
public Node<E> head;
public Node<E> tail;
public MyList() {
this.head = this.tail = null;
}
public add(E Info) {
this.head = new Node<E>(info); // i'm considering just one element
}
}
public class Node<E> {
private Node<E> succ;
private Node<E> pred;
private E info;
public Node(E info) {
this.succ = this.pred = null;
this.info = info
}
}
public class Info<K,V> {
public K key;
public V value;
public Info(K key, V value) {
this.key = key;
this.value = value;
}
}
现在我想实现以下目标。
- 创建一个 MyList 对象数组。
- 每个列表的每个节点都应该包含一个 Info 对象; 3 .Info 对象应该包含一对 Key (Integer) / Value (MyList object);
- 列表的每个节点都应包含 Info 对象;
- 每个 Info 对象都应该包含一对 Key (Integer) / Value (String);
第一个问题:我知道 Java 不允许创建泛型数组;是否有解决方法来创建它?
好的,让我们尝试一个“平面”对象。
MyList<Info> myList = new MyList<Info>();
现在我创建一个新的 Info 对象,add 方法将放置在 Node 中。
myList.add(new Info<Integer,MyList<E>>(new Integer(10), new MyList<Info>()));
但是想走得更远……
myList.head.value.insert(new Info<Integer,myList<Info>>(new Integer(10), new myList<Info>()));
...抛出以下错误:
cannot find symbol,
symbol: method insert(Info<Integer,MyList<Info>>)
location: class Object
第二个问题:Object 类呢?我应该有一个 List 对象!
第三个问题:这是管理泛型的正确方法吗?
提前感谢您的帮助。
【问题讨论】:
标签: java generics data-structures nested