gpt4 book ai didi

java - 比较二维数组中每行的第一个元素

转载 作者:行者123 更新时间:2023-12-01 13:20:34 25 4
gpt4 key购买 nike

我想检查每行第一个元素(左侧)中的所有匹配元素,如果有匹配,则获取它旁边的元素。

这是我的例子:

ArrayList<String> variables = new ArrayList<String>();
ArrayList<String> attribute = new ArrayList<String>();
String[][] sample = { {"hates", "hates"},
{"p1","boy"},
{"p2","girl"},
{"hatesCopy", "hatesCopy"},
{"p2","boy"},
{"p1","girl"}};

for(int a = 0; a < sample.length; a++){
for(int b = 0; b < sample.length; b++){
if(sample[b].equals(sample[a])){
variables.add(sample[b][0]);
attribute.add(sample[b][1]);
}
}
}
System.out.println("variables stored: "+ variables);
System.out.println("attributes stored: "+ attribute);

我尝试比较二维数组中每行的第一个元素,以检查是否存在匹配元素,但它没有按照我想要的方式工作。

变量和属性数组应输出:

variables stored: [p1, p1, p2, p2]
attribute stored: [boy, girl, girl, boy]

其中第一个元素“p1”是示例二维数组中“boy”旁边的值。

但是,我的代码决定输出二维数组的全部内容,这是错误的:

variables stored: [hates, p1, p2, hatesCopy, p2, p1]
attribute stored: [hates, boy, girl, hatesCopy, boy, girl]

此外,行的长度会有所不同,但列的大小始终为 2。关于我哪里出错了有什么想法吗?

最佳答案

您正在检查元素自身。 "hates""hatesCopy" 只有一份副本,但它们与自身匹配。

要防止自匹配,请添加一个条件以确保 a 不等于 b

if(a != b && sample[b][0].equals(sample[a][0])){

关于java - 比较二维数组中每行的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22049353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com