Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中具有逻辑运算的双数组到布尔数组_Java_Arrays_Type Conversion_Logical Operators - Fatal编程技术网

java中具有逻辑运算的双数组到布尔数组

java中具有逻辑运算的双数组到布尔数组,java,arrays,type-conversion,logical-operators,Java,Arrays,Type Conversion,Logical Operators,我要用java做一个操作,如果不做for循环,我就找不到解决方法,为了提高计算效率,我真的很想避免这样做。 我以前用Matlab编程,很容易,但用java编程似乎要复杂得多。我的问题是。。。这个Matlab代码的java等价物是什么: A = [1;-3;2;2;5-7;0]; A<1; ans = 0 1 0 0 1 1 A=[1;-3;2;2;5-7;0]; A w

我要用java做一个操作,如果不做for循环,我就找不到解决方法,为了提高计算效率,我真的很想避免这样做。 我以前用Matlab编程,很容易,但用java编程似乎要复杂得多。我的问题是。。。这个Matlab代码的java等价物是什么:

A = [1;-3;2;2;5-7;0];

A<1;

ans =

     0
     1
     0
     0
     1
     1
A=[1;-3;2;2;5-7;0];
A w<1)
.collect(Collectors.toList());
在这个例子中,
result={-1,-3,-5,-6}
但是我希望有
result={1,0,1,1}
老式的解决方案(假设
X
是一些int值;'intValues'表示某种int或整数的集合/数组):

List lessThanX=new ArrayList();
for(int i:int值){
增加(i
如今,使用流:

intValues.stream().map( i -> i < X ).collect(Collectors.asList());
intValues.stream().map(i->i
(或者类似的问题……因为这个问题不需要你自己去尝试——我省略了交叉检查我的输入——这仅仅是为了激励你去做)

老派的解决方案(假设
X
是某个int值;'intValues'代表某种int或integer的集合/数组):

List lessThanX=new ArrayList();
for(int i:int值){
增加(i
如今,使用流:

intValues.stream().map( i -> i < X ).collect(Collectors.asList());
intValues.stream().map(i->i
(或者类似的问题…因为这个问题不包含任何尝试自己的努力-我省略了交叉检查我的输入-它仅仅是为了激励你去做)

int[]a={1,-3,2,2,-2,0};
Arrays.stream(a).forEach(i->System.out.println(i<1?1:0));
int[]a={1,-3,2,2,-2,0};
Arrays.stream(a).forEach(i->System.out.println(i<1?1:0));

这看起来确实应该是一个简单的循环函数

double[] outputArray = {1, -3, 2, 2, 5, -7, 0};
boolean[] outputArray = new boolean[inputArray.length];
for (int i = 0; i < inputArray.length; i++) {
    outputArray[i] = inputArray[i]<1;
}
double[]outputArray={1,-3,2,2,5,-7,0};
boolean[]outputArray=新的boolean[inputArray.length];
for(int i=0;ioutputArray[i]=inputArray[i]这看起来确实应该是一个简单的循环函数

double[] outputArray = {1, -3, 2, 2, 5, -7, 0};
boolean[] outputArray = new boolean[inputArray.length];
for (int i = 0; i < inputArray.length; i++) {
    outputArray[i] = inputArray[i]<1;
}
double[]outputArray={1,-3,2,2,5,-7,0};
boolean[]outputArray=新的boolean[inputArray.length];
for(int i=0;ipublic static int[]convertToBinary(int[]decimal,int compareInt){
int[]二进制=新的int[decimal.length];
int指数=0;
Arrays.stream(decimal).forEach(dec->binary[index++]=dec
公共静态int[]convertToBinary(int[]decimal,int compareInt){
int[]二进制=新的int[decimal.length];
int指数=0;
Arrays.stream(decimal).forEach(dec->binary[index++]=dec
for循环在这里似乎是合适的。请注意,在matlab中使用for循环更糟糕(更慢)比在java中使用它要慢。@TylerNichols For loops在matlab中由于其解释性质相对较慢。当您编写
A<1
时,使用高效的C实现对该For loop进行评估,这对于大型矩阵来说肯定很重要。简单的原因是,在现实中,我将有一个具有数千个值的向量,而我看不到我的值self让程序循环,只是为了得到另一个相同大小的向量。@m7913d感谢您的澄清,我不知道优化发生了——在某个地方仍然是一个for循环,即使它一直到汇编:)(放在一边……)for循环在这里似乎合适。请注意,在matlab中使用for循环更糟糕(更慢)比在java中使用它要慢。@TylerNichols For loops在matlab中由于其解释性质相对较慢。当您编写
A<1
时,使用高效的C实现对该For loop进行评估,这对于大型矩阵来说肯定很重要。简单的原因是,在现实中,我将有一个具有数千个值的向量,而我看不到我的值self让程序进行循环,只是为了得到另一个相同大小的向量。@m7913d感谢您的澄清,我不知道优化发生了——即使它一直到汇编,在某个地方仍然是一个for循环:)(展开…)请注意,我会将此与for循环进行基准测试-我打赌结果会让你惊讶:)请看@TylerNichols虽然我知道它可能会慢一些,但我很惊讶,因为我没有预料到会有这样的差异。请对您的帖子和评论进行投票:)请注意,我会将此与for循环进行基准测试-我打赌结果会让你惊讶:)请看@TylerNichols Alth虽然我知道可能会慢一些,但我还是很惊讶,因为我没想到会有这样的不同。请对您的帖子和评论投赞成票:)
double[] outputArray = {1, -3, 2, 2, 5, -7, 0};
boolean[] outputArray = new boolean[inputArray.length];
for (int i = 0; i < inputArray.length; i++) {
    outputArray[i] = inputArray[i]<1;
}
public static int[] convertToBinary(int[] decimal, int compareInt){
  int[] binary = new int[decimal.length];
  int index = 0;
  Arrays.stream(decimal).forEach( dec -> binary[index++] = dec < compareInt ? 1 : 0 );
  return binary;
}