我有一个布尔数组[true,false,false,true,true],我想用它拆分一个2d数组。我试着做的是
public static void sorting(boolean[] test, String[][] arr)
{
int counter = 0;
//finds how many people passed
for(int z = 0; z < arr.length; z++)
{
if (test[z] != false)
counter++;
}
String[][] passed = new String[counter][2];
//tests for which people had Passed and copies it over
for(int x = 0; x < passed.length; x++)
{
for(int y = 0; y < passed[x].length; y++)
if(arr[x] != false)
passed[x][y] = arr[x][y];
}
example2dArrayPrint(passed);
}
我的一个想法是
Bob A
Fred F
Larry F
John C
Tom B
输出将是
Bob A
John C
Tom B
我不明白这为什么不能正确排序。编辑
这两个数组之间的关系是,如果test[0]==true,则arr[0][0]和arr[0][1]的该部分将放入新传递的数组中,将跳过false<编辑2
更改从3传递到2,在执行此操作时输入错误。
public static void sorting(boolean[] test, String[][] arr){
int counter = 0;
//finds how many people passed
for(int z = 0; z < arr.length; z++){
if (test[z])
counter++;
}
//cols represents number of columns you have in your 2d matrix.
int cols=2;
String[][] passed = new String[counter][2];
counter=0;
//out loop for iterating over arr
for(int i=0;i<arr.length;i++)
if(test[i]){
//for all cols
for(int j=0;j<cols;j++){
passed[counter][j]=arr[i][j];
}
counter++;
}
example2dArrayPrint(passed);
}
下面是使用流的不同方法。我将方法重命名为筛选,因为这是您正在做的事情,而不是排序。
String[][] data = { { "Bob", "A" }, { "Fred", "F" },
{ "Larry", "F" }, { "John", "C" }, { "Tom", "B" } };
boolean[] test = { true, false, false, true, true };
String[][] result = filtering(test, data);
for (String[] a : result) {
System.out.println(Arrays.toString(a));
}
印刷品
[Bob, A]
[John, C]
[Tom, B]
test
数组的数组长度,流式传输0到4的int数组。public static String[][] filtering(boolean[] test,
String[][] arr) {
return IntStream.range(0, test.length).filter(i -> test[i])
.mapToObj(i -> arr[i]).toArray(String[][]::new);
}
您必须保留两个不同的指针-一个用于传递的数组中的当前位置,另一个用于输入的arr中。试试这个:
public static void sorting(boolean[] test, String[][] arr) {
int counter = 0;
//finds how many people passed
for (int z = 0; z < arr.length; z++) {
if (test[z])
counter++;
}
String[][] passed = new String[counter][2];
int i = 0;
//tests for which people had Passed and copies it over
for (int x = 0; x < arr.length; x++) {
if (test[x]) {
for (int y = 0; y < 2; y++) {
passed[i][y] = arr[x][y];
}
i++;
}
}
example2dArrayPrint(passed);
}
产出:
[[Bob, A], [John, C], [Tom, B]]
永远不要信任外部输入。请在使用外部输入前进行过滤和验证。filter_var()和 filter_input() 函数可以过滤文本并对格式进行校验(例如 email 地址)。 外部输入可以是任何东西:$_GET 和 $_POST 等表单输入数据,$_SERVER 超全局变量中的某些值,还有通过 fopen('php://input', 'r') 得到的 HTTP 请求体。记住,外部输入的定义并不局
这是我的数据: 我想删除数组元素,如果没有selectedProducts.id 所以结果应该是: 这就是我所尝试的: 我的结果是错误的,我得到的结果是空数组:
问题内容: 我想删除原始数组(是)中的特定元素。我那个数组,并返回新的数组。但这不会影响此代码中的原始数组。我如何轻松地从原始数组中删除那些元素? 问题答案: 该方法不仅用于收集元素集,而且还用于收集元素集。如果您想通过评估条件来获得一项,那么您还有其他三种选择。,并因此只有当你想对多个项目的操作,你应该考虑使用过滤功能。就需要完成的工作而言,没有一个答案是完整的。他们使用过滤器功能隔离一个集合(
问题内容: 我想要一个numpy 2D ndarray的子数组(在最小和最大之间) 最小值和最大值是浮点数,以便与数组xy_dat的第一个值进行比较 xy_dat是2D numpy数组: x_displayed已正确过滤,但我丢失了第二个值(现在是一维数组): 如何在第一个值上过滤并保留另一个值? 问题答案: 您应该仅在 第一 列上执行条件: 我们在这里构造一个视图,其中仅考虑带有的第一列。现
Output filter plugins operate on a template's output, after the template is loaded and executed, but before the output is displayed. 输出过滤器插件的作用是,在装载并执行完一个模板之后显示模板之前,操作该模板的输出。 stringsmarty_outputfilter
主要内容:限制第一个和最后一个,其他过滤器Firebase提供了多种方式来过滤数据。 限制第一个和最后一个 下面我们来了解第一个和最后一个数据限制是什么。 方法返回从第一个开始向前的指定数量的项目。 方法返回从最后一个开始向前的指定数量的项目。 下面这个例子是展示如何工作的。 由于在数据库中只有三个运动员数据,这里将限制查询返回一个运动员数据。 示例 现在,参考下面的例子 - 控制台会记录第一个查询得到前两个运动员数据,第二个查询得到最后