gpt4 book ai didi

java - 我可以在Java中使用listiterator来访问随机位置的元素吗?

转载 作者:行者123 更新时间:2023-12-03 05:45:50 24 4
gpt4 key购买 nike

我正在编写遍历文章记录(在数据库中)的代码。我将数据库加载到内存中并将其存储在 ListIterator 中。

有谁知道我是否可以访问随机位置的元素?

我创建了这个 Java 示例:

package com.myjava.listiterator;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class MyListIterator {
public static void main(String a[]){
List<Integer> li = new ArrayList<Integer>();
ListIterator<Integer> litr = null;
li.add(23);
li.add(98);
li.add(29);
li.add(71);
li.add(5);
litr=li.listIterator();
System.out.println("Elements in forward directiton");
while(litr.hasNext()){
System.out.println(litr.next());
}
System.out.println("Elements in backward directiton");
while(litr.hasPrevious()){
System.out.println(litr.previous());
}

// How to access litr[3]?
}
}

此代码向前和向后循环数字。请参阅我的最后评论。我可以访问litr[3]吗?

最佳答案

// How to access litr[3]?

不,你不能从迭代器中随机获取。

来自ListIterator docs

A ListIterator has no current element; its cursor position always lies between the element that would be returned by a call to previous() and the element that would be returned by a call to next().

// How to access litr[3]?

我可以通过直接从列表中获取它来看到一种可能性 li.get(3);

如果你手头没有列表,只有迭代器,请先准备一个列表

List<ObjectType> dupList= new ArrayList<ObjectType>();
while (itr.hasNext())
dupList.add(itr.next());

如果您只需要获取一个对象,则可以选择:

ObjectType target =null;
int i = 0;
while(itr.hasNext() && i!=3){
i++;
target = itr.next();
}
//access fourth element via target variable.

现在将随机索引传递到此列表(dupList)

关于java - 我可以在Java中使用listiterator来访问随机位置的元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31696861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com