【发布时间】:2012-11-07 19:27:27
【问题描述】:
我有一组 2 个包含相同数量数字的 int 数组
例如
int[] array1 = {1,3,5,5,2}
int[] array2 = {5,3,4,4,4}
我需要根据 2 个标准来比较它们
- 有多少元素在同一索引上具有相同的值
- 有多少元素在不同的索引上有相同的值
并返回一个表示值的整数数组
我有几个例子让你更好地理解:
int[] array0 = {1,3,5,5,2};
int[] array1 = {5,3,4,4,4};
int[] array2 = {5,3,4,4,5};
int[] array3 = {2,3,2,2,4};
int[] array4 = {5,5,2,1,3};
int[] array5 = {3,1,5,5,2};
int[] array6 = {1,3,5,5,2};
compare(array0,array1); //this would return 1,1
compare(array0,array2); //this would return 1,2
compare(array0,array3); //this would return 1,1
compare(array0,array4); //this would return 0,5
compare(array0,array5); //this would return 3,2
compare(array0,array6); //this would return 5,0
对于第一个数字很简单,我只需要检查 array1 的索引 i 上的元素是否与 array2 中的相同。
我在生成第二个数字时遇到问题,因为应该从其中一个数组中取最小的数字。 如果我只看 array1 的元素是否在 array2 中的某个地方,它在某些情况下会产生错误的结果。
如果你看
int[] array1 = {1,3,5,5,2}
和
int[] array3 = {2,3,2,2,4};
并检查array1是否与array3在索引上的内容相同,它会返回3个数字相等但在不同的位置这是错误的,因为它应该从最小的数字开始判断,结果应该是1。
如果我切换它来比较 array3 在某个索引上是否与 array1 具有相同的内容,它适用于这种情况,但不适用于其他情况。
关于如何解决这个问题的任何想法,我很无能为力?
【问题讨论】:
-
为什么不使用 Java 中比数组更强大的机制 - 集合框架?