gpt4 book ai didi

java - Java中的循环数据结构

转载 作者:行者123 更新时间:2023-11-29 03:27:20 32 4
gpt4 key购买 nike

是否有迭代器可以循环遍历数据结构?

假设有一个数组:

int[] arr = {-1,5,7,-1,-1,-1}

我想从这个数组中找到第一个非-1值的索引并开始从随机位置搜索 (idx = random.nextInt(arr.length) ).例如idx = 4;

所以首先检查是否 arr[4] == -1,然后检查 arr[5] == -1 等等。 如果到达数组的末尾则从0位置开始,继续直到找到非-1。保证数组中至少有一个不等于-1的值。

可以这样做:

int idx = -1;
for (int i = random.nextInt(arr.length); ; i++) {
if (i == arr.length) {
/** start over */
i = 0;
}
if (-1 != arr[i]) {
idx = i;
break;
}
}

左右:

int idx = -1;
int i = random.nextInt(arr.length);

do {
if (-1 != arr[i]) {
idx = i;
}
i == arr.length ? i=0 : i++;
} while (-1 == idx);

有没有Iterator,支持循环(调用next(),到达数组末尾自动从0开始)?

局限性:1)没有考虑效率; 2) 首选标准Java API。

最佳答案

在java API中没有这样的api可以满足你的问题,但你可以自己做。

您可以做的是使用 List 创建 LinkedList。解决您的问题。

您可以将 List 扩展到您的类(CircularLinkedList extends List),然后覆盖方法 hasNext()getNext() 这就是你所需要的。

关于java - Java中的循环数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20343265/

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