Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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_Android_Linked List - Fatal编程技术网

Java 为什么我不能在链表上使用下降迭代器?

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

我有以下代码片段,负责读取一个JSON文件并创建一个双链接列表。我正在关注官方来源的链接列表
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>();