gpt4 book ai didi

java - 在 Java 中获取列表中不存在于另一个列表中的下一个项目

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:43 28 4
gpt4 key购买 nike

我正在尝试创建一个函数来获取列表中不在另一个列表中的下一项,同时在到达末尾时循环到列表的开头。

基本上我想要发生的是:

String[] list = new String[]{"apple", "banana", "cherry", "donut", "egg", "fish", "grape"};
List<String> list2 = new ArrayList<String>( Arrays.asList("apple", "cherry", "donut", "fish"));
int index = 4;
System.out.println(nextItem());
System.out.println(nextItem());
System.out.println(nextItem());
System.out.println(nextItem());
System.out.println(nextItem());
//Returns:
//egg
//grape
//banana
//egg
//grape

我尝试过这样做:

public String nextItem() {
index++;
if(index == list.size()) index = 0;
while(list2.contains(list[index])) {
index++;
if(index == list.size()) index = 0;
}
return list[index];
}

但这不起作用,索引保持不变。

是否有更好的方法来执行此操作/类似的操作,但我不知道?

最佳答案

一些改变,它就像一个魅力:

public class Example {
String[] list = new String[]{"apple", "banana", "cherry", "donut", "egg", "fish", "grape"};
List<String> list2 = new ArrayList<>(Arrays.asList("apple", "cherry", "donut", "fish"));
public int index = 4;

public static void main(String[] args) {
new Example().start();
}

public void start() {
for (int i = 0; i < 100000; i++) {
System.out.println(nextItem());
}
}

public String nextItem() {
index++;
if (index == list.length) index = 0;
while (list2.contains(list[index])) {
index++;
if (index == list.length) index = 0;
}
return list[index];
}
}

要点是 index 必须是全局的。

关于java - 在 Java 中获取列表中不存在于另一个列表中的下一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60583615/

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