Java 双向链表的迭代器,怎么添加元素?

我有一个publicclassAdditiveList<T>implementsIterable<T>{publicclassAListIteratorimplement... 我有一个
public class AdditiveList<T> implements Iterable<T>{
public class AListIterator implements ListIterator<T>{
public void add(T x){}
}
}
在其中定义迭代器, 希望将x添加在next()命令的返回值的前面 比如 I.next()是 “a”, 那就把 x插入a前面的位置。 AdditiveList是双向链表。 另外请问怎么找开头,判断迭代器能不能执行previous()命令啊?
展开
 我来答
xQ_27
推荐于2016-05-07 · 知道合伙人软件行家
xQ_27
知道合伙人软件行家
采纳数:69 获赞数:289
毕业于青岛理工大学。

向TA提问 私信TA
展开全部
可以用LinkedList代替你的AdditiveList

LinkedList<String> linklist=new LinkedList<String>();
String [] strs={"1","2","3","4"};
for (String string : strs) {
linklist.add(string);
}
System.out.println("链表的第一个元素是 : " + linklist.getFirst());
System.out.println("链表最后一个元素是 : " + linklist.getLast());
System.out.println("链表的长度 : " + linklist.size());

//然后你需要动态改变链表中的元素这时可以用ListIterator<E>迭代器来操作链表
ListIterator<String> itr=linklist.listIterator();
while (itr.hasNext()) {
itr.next();//先正序将游标调至结尾
}
while (itr.hasPrevious()) {
String string = (String) itr.previous();//逆序遍历链表
System.out.println(string);
if("2".equals(string)){//在指定位置前插入元素
itr.add("0");//这里就是你需要插入的元素
itr.add("1");
}
}
System.out.println(linklist.toString());
追问
我想知道的是 hasPrevious()的代码 感谢
百度网友200b114
2015-10-16 · TA获得超过261个赞
知道小有建树答主
回答量:324
采纳率:66%
帮助的人:174万
展开全部
迭代器只是个接口,里面定义遍历元素的方法而已,没有什么添加元素的方法,而且遍历元素的方法你要自己实现。
你要实现添加元素的方法,首先你得把你双向链表的结构先搭出来,别基础都没弄好就想飞了。
追问
全部写完了 就是添加的位置不对 代码太长贴不上来
追答
调试下,一步一步走,看看为什么添加错了位置
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式