Java 为什么我不能在链表上使用下降迭代器?
我有以下代码片段,负责读取一个JSON文件并创建一个双链接列表。我正在关注官方来源的链接列表Java 为什么我不能在链表上使用下降迭代器?,java,android,linked-list,Java,Android,Linked List,我有以下代码片段,负责读取一个JSON文件并创建一个双链接列表。我正在关注官方来源的链接列表API public void createvertices(){ 试一试{ List doublyLinkedList=Collections.synchronizedList(newlinkedlist()); JSONObject JSONObject=new AssetsFileReader().readJsonInput(上下文,“data/stations_0.1.json”); JSONAr
API
public void createvertices(){
试一试{
List doublyLinkedList=Collections.synchronizedList(newlinkedlist());
JSONObject JSONObject=new AssetsFileReader().readJsonInput(上下文,“data/stations_0.1.json”);
JSONArray statar=(JSONArray)jsonObject.get(“stations_数组”);
对于(int i=0;i
但是,IDE不允许我在此处使用降序迭代器:
ListIterator<Vertex> desListIt = doublyLinkedList.descendingIterator // Problem
ListIterator desListIt=doublyLinkedList.DegendingIterator//问题
我在创建链接列表时是否遗漏了什么
LinkedList
有一个下降迭代器,但是集合。synchronizedList
返回一个没有该方法的列表
实现
由于您正在使用集合.synchronizedList
包装LinkedList
实例,因此您不再具有对LinkedList
实例的直接访问权限,并且无法执行LinkedList
特定方法
因此,您不能调用下降迭代器
也就是说,我不知道为什么要使用Collections.synchronizedList
,因为您的列表似乎没有被多个线程共享
因此,也许你可以简单地改变
List<Vertex> doublyLinkedList = Collections.synchronizedList(new LinkedList<Vertex>());
List doublyLinkedList=Collections.synchronizedList(newlinkedlist());
到
LinkedList双链接列表新建LinkedList();
我不知道这是否是问题所在,但有一个分号代码>在该行末尾丢失。@Ivan我知道,但是我没有包括它,因为该方法无法识别,代码没有问题!所以,当我使用同步列表时,基本上我没有使用链表?但是,即使更改为List doublyLinkedList=newlinkedlist()代码>我看不到降序迭代器。它不工作,请参考我问题的最新编辑,我添加了一张图片。@User3这是因为您只看到列表
接口的方法(因为这是您变量的编译时类型)。您可以通过将变量类型更改为LinkedList
来克服这个问题。我做到了。请参考我问题中的编辑!该死!我错过了左边的初始数据类型!谢谢,现在可以用了!!
List<Vertex> doublyLinkedList = Collections.synchronizedList(new LinkedList<Vertex>());
LinkedList<Vertex> doublyLinkedList new LinkedList<Vertex>();