如果任何数组成员与其他成员不同,我需要搜索数组的内容
我在一个阵列中注册设备ID,如果连接了任何不同的设备,我必须检查?错误的设备可以连接任何可用的端口。所以在我拿走所有ID之后,我需要检查一下是否都是一样的。最多可同时连接6个设备。设备ID将在运行时决定。
我在下面写了代码,但它不是一个有效的代码。我也需要错误的设备索引,这个索引无法通过此代码获得
private byte ArrayCheck(byte[] array) {
byte buffer=0;
bool result=false;
for (byte i = 0; i < array.Length; i++)
{
if (array[i] != 0)
buffer = array[i];
}
for (byte i = 0; i < array.Length; i++)
{
if (array[i] != 0)
{
if (array[i] == buffer)
result = true;
else
{
result = false;
break;
}
}
}
if (result)
return buffer;
else
return 0;
}
谢谢
答案 0 :(得分:0)
所有合作回答者:记住评论,他们会更清楚。
OOP:代码看起来像Java,对吧?
我不会做比较,我只是算数。所以你只需要遍历一次数组,建立“桶”。例如,你可以使用Map来实现,其中id是键,count是值。然后你找出最高计数项,从地图中删除它,其余的键是你的“错误”ID。也许有更高效的实现而不是地图。也许你甚至可以制作自己的小数据结构,取一个id,计算它然后给你“错误的”id列表。
这样你甚至可以处理超过2种不同的ID
对于两个ID具有相同计数的情况,您必须弄清楚客户的需求是什么。也许你可以采取“第一” - 所以它或多或少是随机的。