我尝试使用整数范围构建域,但不包括此范围内的一个点。例如,我应该建立一个范围,直到4,始终为零。但是,我必须在其中排除一点说3.因此,我的域应该看起来像数组[0,1,2,4]。创建整数域的最快方法是什么?
答案 0 :(得分:1)
在您的域中创建一个整数的arraylist,省略一个特定的元素。像这样:
ArrayList<Integer> domain = new ArrayList<Integer>();
createDomain(domain, 1, 4, 3);
...
void createDomain(domain, int start, int end, int leaveOutElement) {
int i;
for (i = start; i <= end; i++) {
if (i == leaveOutElement)
continue;
domain.add(i);
}
}
答案 1 :(得分:1)
使用Java 8:
final int start = ...;
final int endInclusive = ...;
final int exclude = ...;
int[] domain = IntStream.rangeClosed(start, endInclusive).
filter(i -> i != exclude).
toArray();
即。创建一个IntStream
[start, endInclusive]
,然后过滤掉要排除的值,最后将其收集到一个数组中。
作为一种方法:
public int[] createDomain(final int start, final int endInclusive, final int exclude) {
return IntStream.rangeClosed(start, endInclusive).
filter(i -> i != exclude).
toArray();
}