所以我有一个值数组
我有一个Int数组中的两个值,Say A [a]和A [b]
我现在想要搜索数组以查看它是否包含> A [a]但是< A [B]
我想看看数组中的值是否大于A [a]且小于A [b]
说我有[1,3,5,6]
A[0] = 1
A[2] = 5
现在我想要一个方法,看看我的两个选定值之间是否存在此数组中的值,即我应该为True,因为3是< 5>> 1
我该怎么做?有没有办法呢?
答案 0 :(得分:2)
首先让我们重申一下你的问题:给两个值a和b搜索一个数组arrayValues,看看是否有值a和值b之间的任何值(a< x< b)。
private boolean isPresent(int[] arrayValues, int a, int b) {
boolean isPresent = false;
int i = 0;
while (!isPresent && i < arrayValues.length )) {
isPresent = a < arrayValues[i] && arrayValues[i] < b;
i++;
}
return isPresent;
}
关键计算是我们循环,直到找到满足条件的值(并且数组中有更多元素);并且我们使用和运算符(&amp;&amp;)来评估必须为真的两个条件。
答案 1 :(得分:0)
没有直接的方法,但您可以使用下面显示的技巧。
对数组进行排序 - &gt; 列出一个列表 - &gt; 使用lastindex和两个数字的第一个索引来决定。
请参阅以下代码:
int[] ar = {1, 2, 4, 5, 2, 6};
Arrays.sort(ar);
List list = Arrays.asList(ar);
int n1 = 4, n2 = 6; // Example of two numbers from array
int indexDiff = list.lastIndexOf(n1) - list.indexOf(n2);
if(indexDiff < -1){
// there are items
} else {
// There are no items
}
如果要查找的数字多于需要排序和转换为仅列表的数据。