创建整数域的最快方法是什么?

时间:2014-07-26 09:21:32

标签: java

我尝试使用整数范围构建域,但不包括此范围内的一个点。例如,我应该建立一个范围,直到4,始终为零。但是,我必须在其中排除一点说3.因此,我的域应该看起来像数组[0,1,2,4]。创建整数域的最快方法是什么?

2 个答案:

答案 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();
}