0

我正在寻找一种有效的方法来做到这一点。假设我有两个带有对象点的数组。

Point[] a1 = {/*something that is Point*/}
Point[] a2 = {/*something that is Point*/}

我想要的是在不使用 java.util.* 的情况下在两个数组中获取相互的东西

例如

Point[] a1 = {Point1, Point2, Point3}
Point[] a2 = {Point2, Point3}

我想得到一个新的数组 a3 是

a3 = {Point2, Point3} 

让我困惑的是,我不知道 a3 会持续多久。所以我是否必须遍历 a1、a2 来计算那里有多少相互项目,以及

Point[] a3 = new Point[count]

然后再次循环a1,a2并将项目放入??这看起来效率很低。有没有更优雅的方法来做到这一点,因为这可能会一直出现。

4

1 回答 1

2

因为数组不可重新调整大小,所以您可以做一个数组,其大小等于其他两个数组中最小的数组的大小。

为该数组保留一个索引,并在循环遍历两个数组时添加公共元素。

完成后,创建一个大小等于您已达到的索引的新数组并将它们复制过来。

但是,老实说,使用java.util.*或其他一些库,如Guava.

于 2013-09-06T18:06:22.637 回答