투케이2K

167. (java/자바) 알고리즘 : 이중 for문을 사용해서 두 배열 교집합 데이터 출력하기 본문

Java

167. (java/자바) 알고리즘 : 이중 for문을 사용해서 두 배열 교집합 데이터 출력하기

투케이2K 2021. 3. 6. 10:35

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Eclipse

개발 언어 : Java

/* =========================== */

/* =========================== */

[소스 코드]

 

package ex5;

public class MainActivity11 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[이중 for문을 사용해서 두 배열 교집합 데이터 출력하기]");
		
		/*[설 명]
		 * 1. 이중 for문을 사용해서 [부모i값]과 [자식j값]이 서로 동일한지 확인합니다 
		 * 2. equals 사용해서 두 배열값이 같은지 확인합니다
		 * 3. contains 사용해서 return 반환하는 data 문자열에 값이 포함된지 확인합니다 (중복 저장 피하기 위함)
		 * */
		
		//배열 생성 및 데이터 저장 실시
		String one_arr[] = new String[3];
		one_arr[0] = "하나";
		one_arr[1] = "둘";
		one_arr[2] = "셋";
		
		String two_arr[] = new String[3];
		two_arr[0] = "하나";
		two_arr[1] = "둘";
		two_arr[2] = "하나";
		
		System.out.println(getArrayIntersec(one_arr, two_arr)); //TODO 교집합을 구하는 메소드 호출
				
	}//메인 종료
	
	//TODO 두 배열 교집합 데이터를 확인하는 메소드
	public static String getArrayIntersec(String one[], String two[]) {
		String data = "교집합 : ";
		try {
			if(one.length > 0 && two.length > 0) { //두 배열 데이터가 널이 아닐 경우
				for(int i=0; i<one.length; i++) {
					for(int j=0; j<two.length; j++) {
						if(one[i].equals(two[j]) == true) { //배열 값이 동일한 경우
							if(data.contains(one[i]) == false) { //중복해서 데이터를 저장하지 않기 위함 (포함하지 않을 경우)
								data += String.valueOf(one[i] + " ");
							}
						}
					}
				}
			}
			else {
				System.out.println("두 배열 데이터가 포함된지 확인해 주세요 ... ");
			}
		}
		catch(Exception e) {
			e.printStackTrace();
		}
		return data;
	}

}//클래스 종료

/* =========================== */

[결과 출력]

[이중 for문을 사용해서 두 배열 교집합 데이터 출력하기]

교집합 : 하나 둘

/* =========================== */

/* =========================== */

[요약 설명]

* 1. 이중 for문을 사용해서 [부모i값]과 [자식j값]이 서로 동일한지 확인합니다

* 2. equals 사용해서 두 배열값이 같은지 확인합니다

* 3. contains 사용해서 return 반환하는 data 문자열에 값이 포함된지 확인합니다 (중복 저장 피하기 위함)

/* =========================== */

반응형
Comments