2013-09-06 3 views
0

효율적인 방법을 찾고 있습니다. 객체가있는 두 개의 Array가 있다고 가정합니다.Java 두 배열의 상호 요소를 찾으십시오

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

는 그리고 내가 원하는 java.util의를 사용하지 않고 두 배열에서 상호 가지를 얻을 수 있습니다. * 예를 들어 그

입니다 (α3) 내가 새로운 배열을 얻으려면

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

에 대한

a3 = {Point2, Point3} 

나를 혼란스럽게하는 것은, 얼마나 오랫동안 a3 될지 전혀 모른다는 것입니다. 그래서 A2 계산, 나는 모두 A1을 통해 루프가 어떻게 많은 상호 항목이, 및

Point[] a3 = new Point[count] 

그런 다음 A1을 통해 루프, 다시의 항목을 넣어 A2

? 이것은 꽤 비효율적 인 것처럼 보입니다. 이것이 올 수 있기 때문에 더 우아한 방법이 있습니까?

+2

교차로를 원하십니까? –

+1

java.util을 사용하지 않고 교차로를 얻습니다. * –

+0

'java.util. * '을 사용할 수없는 특별한 이유가 있습니까? –

답변

2

배열을 크기가 조정할 수 없으므로 다른 두 배열 중 가장 작은 배열의 크기와 동일한 크기의 배열을 만들 수 있습니다.

배열에 대한 색인을 유지하고 두 배열을 반복 할 때 공통 요소를 추가하십시오.

완료되면 도달 한 색인과 동일한 크기의 새 배열을 만들어서 복사하십시오.

솔직히 java.util.* 또는 Guava과 같은 다른 라이브러리를 사용하십시오.

+0

OK ..이 하나의 루프를 절약 –

+0

@TimothyLeung 동적으로 크기를 조정하려면 자신의'링크 된 목록'을 구현 :) :). –

+0

도움이 될까요? –

관련 문제