比较循环数组中的元素(java)
我正在尝试建立一个for循环,它将采用一个数组,例如5个元素,并允许我将比较循环数组中的元素(java),java,arrays,for-loop,circular-reference,Java,Arrays,For Loop,Circular Reference,我正在尝试建立一个for循环,它将采用一个数组,例如5个元素,并允许我将a[0]视为在a[4]之后,将a[4]视为在a[0]之前 我无法更改数组,它在每个元素中存储一个线程,因此我希望尽可能简单地不损坏线程的内容(线程是同步的,并使用reentrantlock-因此问题只与数组有关) 我想简化for循环: for (int i = 0; i < ARRAYSIZE; i++) for(int i=0;i
a[0]
视为在a[4]
之后,将a[4]
视为在a[0]
之前
我无法更改数组,它在每个元素中存储一个线程,因此我希望尽可能简单地不损坏线程的内容(线程是同步的,并使用reentrantlock-因此问题只与数组有关)
我想简化for循环:
for (int i = 0; i < ARRAYSIZE; i++)
for(int i=0;i
让我把它当作一个循环数组。我曾想过使用mudolo操作来实现这一点,但这也行不通。以下是我尝试过的:
for (int i = i+1 % n; i < ARRAYSIZE; i++)
for(int i=i+1%n;i
但这并不管用。我试图做的基本上是检查array[I]
是否大于array[I+1]
或array[I-1]
非常感谢您的帮助。根据数组大小对循环变量
i
使用模运算符:
public static void main(String [] args) {
int [] arr = {1, 5, 4, 3, 3, 4, 3, 1};
int ARRAYSIZE = arr.length;
for (int i = 0; i < ARRAYSIZE; i++) {
int index = i % ARRAYSIZE;
int indexUpper = (i + 1) % ARRAYSIZE;
//access array using index
if (arr[index] == arr[indexUpper]) {
System.out.format("Elements %d and %d are equals.\n", index, indexUpper);
}
}
}
publicstaticvoidmain(字符串[]args){
int[]arr={1,5,4,3,3,4,3,1};
int ARRAYSIZE=arr.length;
for(int i=0;i
请注意,对于要循环使用的上限值,需要执行(i+1)%ARRAYSIZE
,以确保获得下一个元素。若要将元素放置在两个位置,请添加2
,或者选择任何修改器
该测试显示元素7和0是如何相等的,因为它是循环的
输出:
元素3和4相等
元素7和0相等
a[i%5]——你所说的周期性究竟是什么意思?当
i
为false
时,是否希望循环终止?此处是否允许其他数据结构?(你告诉我。)我想知道循环链表是否比数组更合适。谢谢你的评论,但问题是关于数组的。下次链接列表:)非常感谢!如果我以后遇到这个话题,我可以问更多的问题吗?@proggy如果这个话题是全新的,那么最好提出一个新的问题,以获得更多的回应,但是如果它是相关的,请随时在这里问我。我一直对你的解决方案有疑问。您已经帮助我处理了upperindex,但是关于lowerindex,至少对我来说有一个问题:因为int indexLower=(i-1)%ARRAYSIZE;我们得到i-1等于-1,这是越界的。如何解决它?@proggy如果你让它循环,为什么你要试图去后面?它将以i+1
循环,并返回相同的结果。@例如,如果要比较它之前和之后的值,只需将i+1
与i
和i+2
进行比较,结果将是相同的。