邻居过滤数组

时间:2019-03-08 16:31:19

标签: java arrays nearest-neighbor

是否有一种简单的方法可以快速过滤元素数组以仅输出相邻元素?

说我有一个元素数组。现在,我想找到特定元素的邻居。

我编写的代码可以工作,但是看起来很丑陋,我想找到一个易于阅读的解决方案。

我的代码:

int[] myArray = {6, 8, 9, 12, 30};
// index of element where I want to find the neighbors of
int index = 1;

if(index == 0){
  //first element so only add the right neighbor
  System.out.println(myArray[1]);
} else if(index == myArray.length -1){
  //last element so only add left neighbor
  System.out.println(myArray[index-1]);
} else{
  //middle element so add both neighbors
  System.out.println(myArray[index-1]);
  System.out.println(myArray[index+1]);
}

2 个答案:

答案 0 :(得分:2)

这是一个很好的解决方案:

headers = [c for c in next(ws.iter_rows(min_col=27, max_col=32, min_row=1, max_row=1, values_only=True))]

for row in ws.iter_rows(min_row=3, min_col=27, max_row=508, max_col=32, values_only=True):
   mx = max(row)
   idx = row.index(mx)
   col = headers[idx]

答案 1 :(得分:0)

实际上,使用Java 8,您可以通过非常简单的lambda解决方案来使用它:

final int[] numbs = { 1, 3, 5, 7 };
int index = 2;
IntStream.rangeClosed(index - 1, index + 1)
        .filter(idx -> idx != index && idx >= 0 && idx < numbs.length)
        .forEach(idx -> System.out.println(numbs[idx]));

但是,请创建一个接收您的数组和索引的方法,以便重用代码。