투케이2K

120. (kotlin/코틀린) [유틸 파일] arrayIntersect : ArrayList 배열 데이터 교집합 수행 실시 본문

Kotlin

120. (kotlin/코틀린) [유틸 파일] arrayIntersect : ArrayList 배열 데이터 교집합 수행 실시

투케이2K 2022. 12. 22. 21:09

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

        // TODO [SEARCH FAST] : [RETURN] arrayIntersect : ArrayList 배열 데이터 교집합 수행 실시
        open fun arrayIntersect(array_1: ArrayList<*>, array_2: ArrayList<*>): ArrayList<*> {
            /**
             * // -----------------------------------------
             * [arrayIntersect 메소드 설명]
             * // -----------------------------------------
             * 1. ArrayList 배열 데이터 교집합 수행 실시
             * // -----------------------------------------
             * 2. 호출 방식 :
             *
             * var list_1 = ArrayList<Any>()
             * list_1.add("하나")
             * list_1.add("둘")
             * list_1.add("셋")
             *
             * var list_2 = ArrayList<Any>()
             * list_2.add("둘")
             * list_2.add("셋")
             * list_2.add("넷")
             *
             * C_Util.arrayIntersect(list_1, list_2)
             *
             * // -----------------------------------------
             * 3. 리턴 데이터 : [둘, 셋]
             * // -----------------------------------------
             */


            // [리턴 데이터 변수 선언 실시]
            var result: ArrayList<*> = ArrayList<Any>()


            // [원본 데이터 저장 배열 선언]
            var original: ArrayList<*> = ArrayList<Any>()


            // [인풋 데이터 체크 수행 실시]
            if (array_1 != null && array_1.size > 0 && array_1.isEmpty() == false
                && array_2 != null && array_2.size > 0 && array_2.isEmpty() == false) {

                try {

                    // [원본 데이터 저장 실시]
                    original = ArrayList(array_1)

                    // [retainAll 사용해 배열 데이터 교집합 실시]
                    array_1.retainAll(array_2)
                    result = ArrayList(array_1)

                } catch (e: java.lang.Exception) {
                    e.printStackTrace()
                }

            }


            // [로그 출력 실시]
            ///*
            Log.i("---","---")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> arrayIntersect() :: ArrayList 배열 데이터 교집합 수행 실시]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT [array_1] :: "+original.toString()+"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT [array_2] :: "+array_2.toString()+"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+result.toString()+"]")
            Log.d("//===========//","================================================")
            Log.i("---","---")
            // */


            // [리턴 데이터 반환 실시]
            return result
        }
 

[결과 출력]


반응형
Comments